Hallo Zusammen,
ich komme nicht mehr weiter, ich habe eine PHP Website auf der bei bestimmten Veränderungen Daten in eine output.log Datei geschrieben werden.
Beispiel Einträge:
Diese Datei kann ein Administrator dann auf der Website ausgeben, anzeigen oder auswerten lassen.
Damit diese nicht zu Groß und unübersichtlich wird habe ich ein Script gebastelt
Script Theorie:
Wenn in der Datei mehr als 250 einträge sind, soll alles in eine andere Datei (2010-04-output.log) verschoben werden und die Neuen Einträge gehen wieder ins output.log, auf der Website kann der administrator dann aussuchen welches .log angezeigt werden soll.
Script Code:
Dies Funktioniert auch Super, jedoch ist es nicht geordnet ich würde es Gerne noch verfeinern:
Es soll in 2010-04-output.log alles Eingetragen sein, was auch im April geändert wurde und im 2010-05-output.log halt alles vom Mai.
Mein Lösungsvorschlag wäre, dass ich aofort imemr in das aktuelle .log schreibe, aber das wären zuviele einträge, ich möchte ja das das output.log das aktuelle ist und da nicht mehr als 250 zeilen drinn stehen sollten, in den 2010...logs kann beliebig viel drinn stehen.
Meine Frage:
Wie kann ich es am besten lösen?
ich komme nicht mehr weiter, ich habe eine PHP Website auf der bei bestimmten Veränderungen Daten in eine output.log Datei geschrieben werden.
Beispiel Einträge:
2010-04-20 11:29:43 [USER] admin logged in from 10.35.40.40
2010-04-20 11:30:58 [USER] admin logged out from 10.35.40.40
2010-04-20 11:30:58 [USER] admin logged out from 10.35.40.40
Damit diese nicht zu Groß und unübersichtlich wird habe ich ein Script gebastelt
Script Theorie:
Wenn in der Datei mehr als 250 einträge sind, soll alles in eine andere Datei (2010-04-output.log) verschoben werden und die Neuen Einträge gehen wieder ins output.log, auf der Website kann der administrator dann aussuchen welches .log angezeigt werden soll.
Script Code:
PHP-Code:
$outputdatei="./daten/output.log";
if(count(file($outputdatei))>="250")
{
$outputlog="./backup/".date("Y-m")."-output.log";
foreach(file($outputdatei) as $value)
{
file_put_contents($outputlog, $value, FILE_APPEND);
}
file_put_contents($outputdatei, "");
}
}
Es soll in 2010-04-output.log alles Eingetragen sein, was auch im April geändert wurde und im 2010-05-output.log halt alles vom Mai.
Mein Lösungsvorschlag wäre, dass ich aofort imemr in das aktuelle .log schreibe, aber das wären zuviele einträge, ich möchte ja das das output.log das aktuelle ist und da nicht mehr als 250 zeilen drinn stehen sollten, in den 2010...logs kann beliebig viel drinn stehen.
Meine Frage:
Wie kann ich es am besten lösen?
Kommentar