Frage

Ich bin mit der Console.SetOut Methode, um alle meine Console.Out.WriteLines in eine Datei zu schreiben, und das funktioniert. Das einzige Problem ist, dass es nur alles auf den Text-Datei schreibt, wenn ich meine Anwendung zu schließen, anstatt sie zu schreiben, wenn ein Console.Out.WriteLine passiert. Alle Ideen, wie ich das realisieren kann?

Wie ich es tun: Vor Application.Run ();

FileStream writerOutput = new FileStream("Logging_Admin.txt", FileMode.Append, FileAccess.Write);
StreamWriter writer = new StreamWriter(writerOutput);
Console.SetOut(writer);

Nach Application.Run ():

writer.Dispose();

Danke.

War es hilfreich?

Lösung

Die StreamWriter wird sein Inhalt durch Standard puffern. Wenn Sie den Puffer spülen wollen, müssen Sie die Flush Methode:

  

Löscht alle Puffer für den aktuellen Schreiber und bewirkt, dass alle gepufferten Daten an den zugrunde liegenden Stream geschrieben werden.

Andere Tipps

Stream hat eine Autoflush-Eigenschaft. Wenn auf true eingestellt, sollten Sie das Ergebnis erhalten Sie benötigen.

Wenn Sie nicht jedes Mal manuell bündig nennen wollen, könnten Sie Ihre eigene Textwriter abgeleitete Objekt Implementierung, dies zu tun, damit Sie betrachten wollen.

, um den Puffer zu spülen, können Sie tun     writer.Close ();

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top