LogFile mit Größenbegrenzung
Verfasst: 5. Mai 2010 12:32
Hallo allerseits!
Ich würde gerne meiner Application ein Log-File verpassen. Also eine Textdatei, an die alle möglichen Ausgaben angehängt werden. So weit, so einfach. Jetzt möchte ich aber, dass diese Textdatei eine vorgegebene Größe (einstellbar, z.B. 1MB, 10MB,...) nicht überschreitet.
Wie mache ich das? Eigentlich müßte ich, sobald die Textdatei zu groß ist, die ersten paar Zeilen (mit alten Meldungen) in der Datei entfernen, so dass Platz genug ist, um am Ende der Datei neue Meldungen anhängen zu können, ohne das Limit zu überschreiten.
Leider kenne ich keine direkte Möglichkeit das zu tun. Andererseits ist das doch ein ausgesprochen gängiges Problem. Wie löst man das?
Die mir vorstellbaren Workarounds (also z.B. Umkopieren in eine zweite/temporäre Datei) wären (besonders bei einer log-datei mit einigen MB größe) performancemäßig problematisch.
Ich kann das Log auch nicht im Speicher puffern (und erst beim Beenden der Applikation in passender Größe schreiben) da dies bedeuten würde, dass bei einem Absturz das Log nicht aktuell ist.
Zur Not könnte ich immer neue Dateien anlegen (z.B. für jeden Tag eine neue) und die alten Dateien löschen. Aber dieser ungewollte Kompromiss kann doch nicht der Weisheit letzter Schluss sein? Ist das ursprüngliche Ziel nicht zu erreichen?
Ich würde gerne meiner Application ein Log-File verpassen. Also eine Textdatei, an die alle möglichen Ausgaben angehängt werden. So weit, so einfach. Jetzt möchte ich aber, dass diese Textdatei eine vorgegebene Größe (einstellbar, z.B. 1MB, 10MB,...) nicht überschreitet.
Wie mache ich das? Eigentlich müßte ich, sobald die Textdatei zu groß ist, die ersten paar Zeilen (mit alten Meldungen) in der Datei entfernen, so dass Platz genug ist, um am Ende der Datei neue Meldungen anhängen zu können, ohne das Limit zu überschreiten.
Leider kenne ich keine direkte Möglichkeit das zu tun. Andererseits ist das doch ein ausgesprochen gängiges Problem. Wie löst man das?
Die mir vorstellbaren Workarounds (also z.B. Umkopieren in eine zweite/temporäre Datei) wären (besonders bei einer log-datei mit einigen MB größe) performancemäßig problematisch.
Ich kann das Log auch nicht im Speicher puffern (und erst beim Beenden der Applikation in passender Größe schreiben) da dies bedeuten würde, dass bei einem Absturz das Log nicht aktuell ist.
Zur Not könnte ich immer neue Dateien anlegen (z.B. für jeden Tag eine neue) und die alten Dateien löschen. Aber dieser ungewollte Kompromiss kann doch nicht der Weisheit letzter Schluss sein? Ist das ursprüngliche Ziel nicht zu erreichen?