Mailinglist Archive: opensuse-de (3257 mails)

< Previous Next >
syslogd aus php heraus?
  • From: "Rico [radax]" <ro@xxxxxxxxx>
  • Date: Thu, 3 Feb 2005 16:04:54 +0100
  • Message-id: <825797853.20050203160454@xxxxxxxxx>
Hallo,

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?

Gruß
Rico


< Previous Next >