Ankündigung

Einklappen
Keine Ankündigung bisher.

große txt-Datei... Problem?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • große txt-Datei... Problem?

    Hallo!

    Bei einem kleinen php/mysql-Projekt habe ich eine Log-Datei. Jedesmal wenn jemand eine Änderungsaktion in der Datenbank durchführt, wird eine Zeile in eine "log.txt" geschrieben.
    (Also z.B. "21.9.2010 9:20: User xy hat Tabelleneintrag yz gelöscht!" )

    Über eine spezielle Seite kann man die Datei auch im Projekt betrachten. (Also die Zeilen werden eingelesen und formatiert im Browser angezeigt, man muss also nicht den Texteditor öffnen.)

    Jetzt ist die Frage... theoretisch kann die Datei ja unendlich groß werden. Wie sieht es da mit der Performance aus?
    Habt ihr Vorschläge, wie ich hier nun vorgehen soll? Oder kann ich das so lassen?

    Viele Grüße
    Maikell


  • #2
    Aus eigener Erfahrung kann ich sagen, dass PHP auch Dateien > 100MB verarbeiten kann, problemlos, allerdings braucht das doch ein wenig Zeit.

    Du wirst auch sehr viele Log-Einträge brauchen, bis du überhaupt mal in den MB-Bereich kommen wirst.

    Falls dir kleinere Dateien lieber sind, kannst du ja zB für jedes Monat oder jede Woche eine eigene Datei erstellen lassen.

    Alternativ kannst du die logs natürlich auch in eine DB schreiben.

    Kommentar


    • #3
      Es ist sicher sinnvoller, den Log in eine Mysql-Tabelle zu schreiben. Du kannst dann einen ordentlichen Zeitstempel (datetime) und den User jeweils in separate Spalten schreiben und die Aktion in eine dritte.
      Auf diese Weise lassen sich sehr komfortable Abfragen erzeugen, z.B. "Zeige alle Aktionen von user 123, die dieser an jedem Freitag zwischen 16 und 18 Uhr macht."
      PHP-Code:
      if ($var != 0) {
        
      $var 0;

      Kommentar


      • #4
        Was auch ne relativ gute Lösung ist, wenn man die Logs von der DB trennen will, sie in einer SQLite DB zu speichern. Sehr viel übersichtlicher als ne txt Datei aber dennoch getrennt von der MySQL DB, falls diese z.B. mal abschmiert.
        Nen Nachteil ist allerdings, dass SQLite vergleichsweise langsam schreibt.

        Ansonsten, wenn du bei txt-Dateien bleiben willst. PHP kann selbst mehrere GB große Dateien ohne Probleme auslesen. Du darfst diese dann allerdings nicht komplett mit [MAN]file[/MAN] einlesen, sondern Zeile für Zeile([MAN]fopen[/MAN], [MAN]fgets[/MAN]).

        Kommentar

        Lädt...
        X