Größe einer Textdatei beschränken - Einträge löschen.

Charly81

Grünschnabel
Hi,
wie kann ich die Größe einer Textdatei ermitteln und beschränken?
Folgende Situation:
Ich gleiche mit meiner JAVA-Anwendung eine lokale Tabelle regelmäßig mit einer Tabelle auf dem Server ab.
Bei etwaigen Fehlern wird eine entsprechende Fehler-Meldung in eine Textdatei geschrieben.
Wenn jetzt z.B. der Server abstürzt, versucht mein Programm bei jedem Intervall auf diesen zuzugreifen und schreibt bei jedem Intervall entsprechend auch in die Textdatei (ist so gewollt!).
Da wird diese natürlich schnell sehr groß!
Ich möchte jetzt, dass meine Anwendung ermittelt wie groß die Textdatei ist (z.B.100KB) und wenn sie diese Größe überschreitet(103KB) sollen vom oberen Ende der Textdatei eine entsprechende Menge an Zeilen gelöscht werden, um sie auf konstanter Größe zu halten.

Geht das irgendwie?
Vielen Dank im Voraus!
 
Bei uns ist es üblich, Logging-Dateien nicht auf eine spezielle Größe zu halten, sondern den Inhalt, der z.B. älter als eine Woche ist, daraus zu entfernen.

Wir machen das recht einfach so:
- die aktuelle Logging-Datei enthält stets die Inhalte für eine Woche (im laufenden Betrieb)
- jeden Tag wird der aktuelle Inhalt als Archivdatei gespeichert
- ab dem 8. Tag wird praktisch nur der Inhalt des 1. Tages rausgeschmissen und die Datei des 1. Tages danach gelöscht

Das geht mit dem RandomAccessFile-Objekt recht prima, da ich dort den internen Zeiger entsprechend positionieren kann. Somit habe ich stets eine überschaubare Menge Einträge.
 
Hi,
schon super wie schnell in diesem Forum geantwortet wird (kenn ich auch anders!) !
Zu deiner Antwort Schnuffi:
Das ist ja bei mir keine Logging-Datei im eigentlichen Sinn.
Das ist nur eine simple Textdatei in die ich bei irgendeiner Exception den "printStackTrace-String" mit ein paar zusätzlichen Angaben reinschreibe.

Und stell dir mal folgendes Szenario vor:
Das Intervall des Tabellenabgleichs wird von den Mitarbeitern der Firma für die ich das gemacht hab auf eine halbe Minute eingestellt. Stürzt jetzt z.B am Freitag nach Feierabend der Server ab, so wird jede halbe Minute dieser Exception-String in die Textdatei geschrieben.
Am Montag um acht steht dann schon sehr viel drin! Entsprechend groß ist die Datei dann natürlich.
Deshalb wäre es halt schon praktisch die Größe der Datei beschränken zu können.
Das Problem dabei ist halt, dass das Abgleichsintervall beliebig einstellbar sein muss.

Trotzdem vielen Dank für deinen Beitrag, ich werd mir darüber schon noch ein paar Gedanken machen.

Gruß Charly
 
Charly81 hat gesagt.:
Hi,
schon super wie schnell in diesem Forum geantwortet wird (kenn ich auch anders!) !
Zu deiner Antwort Schnuffi:
Das ist ja bei mir keine Logging-Datei im eigentlichen Sinn.
Das ist nur eine simple Textdatei in die ich bei irgendeiner Exception den "printStackTrace-String" mit ein paar zusätzlichen Angaben reinschreibe.

Das ist auch ein Logging.

Aber soweit mir bekannt ist, schreibt der RollingFileAppender trotzdem ins gleiche File wenn die Größe errreicht ist. Es werden nur die ältesten Einträge abgeschnitten.
 
Zurück