String zyklisch in Logfile schreiben



  • Hallo!

    Wer kann mir weiterhelfen?

    Ich möchte mit C Strings in ein LogFile schreiben, welches immer nur eine maximale Zeilenanzahl hat. Ist die maximale Zeilenanzahl erreicht, wird wieder von vorn begonnen die ältesten Einträge (zyklisch) zu überschreiben.

    Ich brauche eine Funktion, die mir einen String in die X. Zeile schreibt.

    Wie kann ich das bewerkstelligen, ohne eine temporäre Datei anzulegen oder mehrere Zeilen in den Speicher einzulesen?

    Würde mich auf Tips freuen!
    Andreas



  • entweder alle zeilen haben ne feste länge oder du musst ne datenbank nehmen.



  • In Unix und anderen Betriebssystemen ist es üblich nicht ein Ringbuffer von Zeilen in einem File sondern eine Ringbuffer von Files zu haben.

    z.B.
    file.1
    file.2
    file.3
    file.4
    ...

    Aus welchem Grund von file.1 in file.2, ... umgeschaltet wird ist oftmals der Wochentag (.0) Sonntag (.6) Samstag, genausogut könnte man sagen alle 10.000 Zeilen wird in das nächste Logfile gewechselt oder beliebige ander Kriterien.

    Dies ist auf jeden Fall einfacher als ein File mit fixer Recordlänge und somit definierter größe oder eine Datenbank. Was passiert wenn durch eine Änderung im Programm eine Logzeile jetzt länger wird. Dann muß auch der Logprocess überarbeitet werden. Da finde ich den Filewechselmechanismus simpler.

    🙂


Anmelden zum Antworten