Laden...

Log Datei schreiben: Letzte Zeile vor Programmende wird nicht in die Datei geschrieben

Erstellt von AMStyles vor 11 Jahren Letzter Beitrag vor 11 Jahren 1.432 Views
Thema geschlossen
A
AMStyles Themenstarter:in
26 Beiträge seit 2012
vor 11 Jahren
Log Datei schreiben: Letzte Zeile vor Programmende wird nicht in die Datei geschrieben

Guten Tag,

ich möchte eine Log Datei schreiben.
Mein Problem: Es soll der letzte Aufruf der nicht geklappt hat auch mit geloggt werden, somit habe ich bei jedem catch eine neue Zeile (WriteLine) zur Datei hinzugefügt.
Da das Programm nun nicht mehr weiter läuft, und die Datei noch nicht geschlossen wurde wird die Datei erst gar nicht gefüllt.

Muss ich bei jedem schreiben in die Datei die Datei gleich wieder schließen?
Oder wie kann ich sonst eine art LogDatei erstellen?

Grüße,
AMStyles

3.511 Beiträge seit 2005
vor 11 Jahren

Benutze für sowas fertige Libraries, wie z.B. log4net.

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

A
AMStyles Themenstarter:in
26 Beiträge seit 2012
vor 11 Jahren

Gibt es nicht noch eine andere Lösung?

771 Beiträge seit 2009
vor 11 Jahren

Die Methode Flush() benutzen.

B
387 Beiträge seit 2005
vor 11 Jahren

.. oder einfach nur sauber disposen..

Grund für dein Problem ist, dass der FileStream puffert. Das bedeutet, dass etwa ein Aufruf von Write(...) nicht zwingend direkt in der Datei landet, sondern erst einmal im Arbeitsspeicher, um so die Schreibaufrufe auf die Datei zu optimieren. Per Flush oder eben vorm Beenden des Programms per Dispose stellst du sicher, dass auch der Puffer in der Datei landet.

Gruß
Roland

A
AMStyles Themenstarter:in
26 Beiträge seit 2012
vor 11 Jahren

Also mit der Methode .Write oder .WriteLine wird es nur in den Arbeitsspeicher geladen nicht in die Datei?

Hinweis von herbivore vor 11 Jahren

Das wurde bereits beantwortet und fällt außerdem unter [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

Thema geschlossen