我正在使用Console.SetOut方法将我的所有Console.Out.WriteLines写入文件,这样可行。唯一的问题是,当我关闭应用程序时它只会将所有内容写入文本文件,而不是每当Console.Out.WriteLine发生时都写入。 关于如何实现这一点的任何想法?
我是怎么做到的: 在Application.Run();
之前FileStream writerOutput = new FileStream("Logging_Admin.txt", FileMode.Append, FileAccess.Write);
StreamWriter writer = new StreamWriter(writerOutput);
Console.SetOut(writer);
在Application.Run()之后:
writer.Dispose();
感谢。
答案 0 :(得分:13)
StreamWriter具有AutoFlush属性。设置为true时,您应该得到所需的结果。
答案 1 :(得分:11)
StreamWriter
默认会缓冲其内容。如果要刷新缓冲区,则必须调用Flush
方法:
清除当前编写器的所有缓冲区,并将所有缓冲的数据写入基础流。
答案 2 :(得分:1)
如果您不想每次手动调用flush,您可能需要考虑实现自己的TextWriter派生对象来为您执行此操作。
答案 3 :(得分:0)
要刷新缓冲区,您可以这样做 writer.Close();