Chris©: Log-Datei führen

Beitrag lesen

Hallo,

Ich würd gerne ein Logdatei führen, daher meine Frage:

Wie kann ich bei einer txt-Datei immer ganz am Ende noch eine Zeile anfügen?

Indem Du diese Datei als klassische Textdatei öffnest.
Die meisten Betriebssysteme haben noch einen, antiquierten, aber nicht obsoleten Modus dafür. Dieser wird bei PHP mit

$fh = fopen($dateiname,'a');

angesprochen. Jede Schreiboperationn mit fwrite() landet nun immer hinter dem aktuellen Ende der Datei. Jede einzelen Schreibanweisung wird vom OS atomar behandelt, kann also nicht zu einer Race Condition führen.

Dies gilt natürlich nicht, wenn in einer Schleife geschrieben wird. Dann könnten andere Prozesse zwischen einem Durchlauf und dem nächsten dazwischenhuschen.

Man kann den Satzzeiger nicht selber verstellen, um zu schreiben.
Wenn man mit 'a+' öffnet, kann man ihn aber verstellen, um zu lesen.
Bei der nächsten Schreiboperation wird er vor dem Schreibvorgang automatisch wieder an das Ende gestellt. Das war bei älteren PHP-Versionen auf Linux nicht richtig implementiert. Irgendwann ab Version 4.2 oder 4.3 hat es dann aber auch auf Linux funktioniert.

Es gibt natürlich noch Alternativen. Die sind aber komplizierter.

LG
Chris©