Logdateien und close()

Ich möchte für ein Programm eine Logging-Klasse schreiben um Fehler besser ausfindig machen zu können. Nun beschäftigt mich aber eine Frage - was passiert wenn die JVM aus welchem Grund auch immer abstürzt, und aus diesem Grund close() nicht aufgerufen werden kann?

Wird dann die Datei nicht im Dateisystem abgelegt, bzw. wird sie fehlerhaft angelegt? Wie machen das andere Log-Systeme?

Beim schließen der VM werden idR alle Streams geschlossen und noch evtl. vorhandene Daten im puffer weggeschrieben. Wenn es allerdings einen JVM-Crash gibt, kann ich dir nicht sagen, ob alles gepufferte auch weggeschrieben wird. Warum verwendest du nicht einfach log4j?

solange du immer flush aufrufst wird alles geschrieben, stürzt die VM oder dein Prog ab kann es nur passieren dass das Handle nicht geschlossen wird