2016-12-28 2 views
0

Ich versuche gerade, eine Logdatei zu erstellen, in der ich einen umgekehrten Chronologiestil einfügen möchte (die neuesten Einträge werden über die Liste aller vorhandenen Texte gesetzt, und die bisherigen Einträge werden weiter unten eingefügt), Denken Sie daran, wie Facebook-Seite, wo, wenn Sie eine Profilseite besuchen, Sie alle seine Beiträge spätestens sehen können -> älteste, anstatt derzeit, was ich habe ist, älteste -> neueste. Hier ist mein Code bis jetzt;Logfile PHP [PHP]

$date = date("d-m-Y H:i:s"); 
    $file = 'logfile.txt'; 
    if (file_exists($file)) { 
     $current = file_get_contents($file); 
     $current .= PHP_EOL.$date; 
     file_put_contents($file, $current); 
    } else { 
     file_put_contents($file, $date); 
    } 
+1

Ich bezweifle, Wenn das eine wirklich gute Idee ist ... Es verhindert die Verwendung von üblichen Tools wie 'tail -f' oder' fail2ban', um eine solche Protokolldatei zu überwachen. Sprechen Sie wirklich über eine so genannte "Log-Datei", also eine technische Dokumentation, oder handelt es sich um einen Ereignisstrom, der in einer Anwendung visualisiert werden soll? Wenn Letzteres, dann verwenden Sie stattdessen eine Datenbank, mit der Sie die Einträge später nach Ihren Wünschen sortieren können. – arkascha

+0

Darf ich Sie fragen, wozu diese Funktion dient? Und wie nützlich ist das? –

+1

Eine "Log-Datei" dient in der Regel administrativen Zwecken: um zu sehen, was sich tatsächlich in einem System abspielt oder um herauszufinden, was zu einem bestimmten Zeitpunkt passiert ist. Eine solche Debugging- oder Analyseaktion hat nichts mit dem normalen Betrieb von Anwendungen oder Diensten zu tun. Eine solche Aktion wird auf Systemebene mithilfe von Systemtools durchgeführt. Dies zu verhindern, scheint für mich eine weniger ideale Herangehensweise zu sein. Aber wie oben erwähnt: vielleicht geht es hier nicht wirklich um eine sogenannte "Log-Datei", sondern lediglich um einen Event-Stream, der _inside_ einer Anwendung verwendet. – arkascha

Antwort

0

Sie fügen Sie das Datum Zeichenfolge an das Ende der Variablen:

$current .= PHP_EOL.$date; 

Sie müssen sich mit den neuesten und fügen Sie die ältere Einträge, nachdem es zu starten:

$current = $date . PHP_EOL . $current; 
+0

Vielen Dank. –