Hallo Rico, probier mal dieses Pear-Paket: http://pear.php.net/package/Log. Ich habe es selber noch nicht getestet, bietet aber laut der Beschreibung das, was Du suchst. Gruß Florian
ich habe das Problem, dass ich gern aus einer PHP-Anwendung heraus Einträge in eine Log-Datei machen möchte. Dabei ist wichtig, dass der Content, den ich schreiben will auch auf jeden Fall zusammenhängend in der Datei landet. Wegen sehr vieler parallel laufender Prozesse hab ich die Befürchtung, dass ein String, der gerade in die Datei geschrieben wird [z.B. mit echo "content" >> /file.log] sich quasi mit einem nahezu zeitgleichen Aufruf eines anderen Prozesses überlagert. Dann würde ja nur Müll entstehn.
Ein Beispiel: Prozess1: echo "\ncontent1" >> /log_file 2>&1 Prozess2: echo "\ncontent2" >> /log_file 2>&1
Ich möchte unbedingt vermeiden, dass dabei irgendwie sowas wie \nconte \ncontent1nt2 entsteht.
Ein locking aus PHP heraus mit lock() ist auch ein bischen problematisch, weil dann die Situation auftreten kann, dass Prozess 2 gar nicht loggen kann.
Am liebsten wäre mir, wenn ich die Linux-internen Log-Mechanismen wie den syslogd z.B. über logger mittels exec() ansprechen könnte, um diese Aufgabe zu erledigen. Ist das möglich? Dieser müsste doch im zweifelsfall eine Queue aufbauen, die er dann abarbeitet, richtig?