【问题标题】:Console.SetOut to StreamWriter, write to textfile constantlyConsole.SetOut 到 StreamWriter,不断写入文本文件
【发布时间】:2011-01-20 14:01:12
【问题描述】:

我正在使用 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();

谢谢。

【问题讨论】:

    标签: c# logging streamwriter console.out.writeline console.setout


    【解决方案1】:

    要刷新缓冲区,您可以这样做 writer.Close();

    【讨论】:

      【解决方案2】:

      StreamWriter 有一个 AutoFlush 属性。当设置为 true 时,您应该得到您需要的结果。

      【讨论】:

        【解决方案3】:

        如果您不想每次都手动调用 flush,您可能需要考虑实现自己的 TextWriter 派生对象来为您执行此操作。

        【讨论】:

          【解决方案4】:

          StreamWriter 默认会缓冲其内容。如果要刷新缓冲区,必须调用Flush 方法:

          清除当前写入器的所有缓冲区,并将所有缓冲数据写入底层流。

          【讨论】:

          • 是的,这就是要走的路。非常感谢!
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-19
          • 1970-01-01
          • 2015-10-13
          • 2014-05-16
          • 2014-11-20
          • 1970-01-01
          相关资源
          最近更新 更多