Bequeme Logs

27. Dezember 2007

1 Kommentar

Ich habe mich gerade mit den Prozesskontrollfunktionen von PHP auseinander gesetzt um vielleicht ein paar nützliche Funktionen für Yanix zu finden und bin auf ein Problem gestoßen: Ein Feature der Prozesskontrollfunktionen ist es, Prozesse im Hintergrund laufen zu lassen. Wie soll ich ein Skript debuggen, welches ich nicht sehen kann?

Nach ein bisschen Grübeln kam ich auf die Lösung: Bau dir ein Log-Terminal!

Schritt 1: Logging
Diese funktion schreibt in eine Datei (in meinem Fall log.txt im XAMPP-Ordner) die übergebene Nachricht mit der PID des Prozesses der die Nachricht schreibt. Die PID erhalte ich beim Aufruf von pcntl_fork().

1
2
3
4
5
6
7
8
9
function L($msg)
{
	global $pid;
	$logfile = '/opt/lampp/htdocs/log.txt';
	$msg = '[' . date('H:i:s') . "][{$pid}] " . $msg . "\n";
	$f = fopen($logfile, 'a');
	fwrite($f, $msg);
	fclose($f);
}

Schritt 2: Ausgabe
Als nächstes die Ausgabe. Mit ein bisschen PHP, HTML, Javascript und Prototype entstand eine kleines Skript um diese Ausgaben bequem und hübsch in einem Browser ansehen zu können. Das Skript gibt es hier zum Download. Es unterstützt über AJAX entweder die Anzeige einer Datei welche über den Webserver erreichbar ist oder über PHP eine beliebige Datei des Dateisystems. Mehr dazu in den Kommentaren der Datei.

¬ geschrieben von Michael in PHP, Snippets

Theme von BenediktRB • Powered by Wordpress • Abonniere den RSS Feed