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
Benutze für sowas fertige Libraries, wie z.B. log4net.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
.. 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
Also mit der Methode .Write oder .WriteLine wird es nur in den Arbeitsspeicher geladen nicht in die Datei?
Das wurde bereits beantwortet und fällt außerdem unter [Hinweis] Wie poste ich richtig? Punkt 1.1.1.