PHP: Wie schreibt man eine Nachricht auf die Konsole (stdout / stderr)
PHP kann in verschiedenen Kontexten ausgeführt werden. Beispielsweise als Kommandozeilenapplikation (CLI) oder als Apache Modul. Je nach Kontext verhalten sich die Funktionen fürs Logging unterschiedlich.
In diesem Blog Post betrachten wir das Szenario einer PHP-Applikation die eine REST-Schnittstelle bereistellt. Der PHP Code wird von PHP-FPM ausgeführt.
Nachrichten die man mit print oder echo ausgibt landen in diesem Fall direkt im Body der HTTP-Antwort. Um dafür zu sorgen, dass Nachrichten in diesem Szenario auf der Konsole landen muss man folgendes Konstrukt verwenden:
// write to stderr
file_put_contents( "php://stderr","---> file_put_contents stderr" );
// write to stdout
file_put_contents( "php://stdout","---> file_put_contents stdout" );
Bei stdout
handelt es sich um den Standardausgabestrom eines Prozesses.
Bei stderr
handelt es sich um den Standardfehlerausgabestrom eines Prozesses.
Beide Kanäle sind in der Regel mit der Konsole verknüpft. Weitere Details
zu diesen Standard-Datenströmen findet ihr hier.