为什么当我试图将控制台输出重定向到一个文件时,我的代码会写一个空白文件
本文关键字:一个 文件 我的 代码 空白 重定向 输出 为什么 控制台 | 更新日期: 2023-09-27 17:57:35
我已经编写了控制台应用程序的"Windows服务"版本。由于控制台不可见,我想将控制台上显示的文本重定向到一个文件。
为此,我编写了以下代码:
private void SetupConsoleLogging()
{
string logFileName = ConfigurationManager.AppSettings["LogFileName"];
FileStream fileStream = new FileStream(logFileName, FileMode.OpenOrCreate);
StreamWriter streamWriter = new StreamWriter(fileStream);
Console.SetOut(streamWriter);
}
上面的代码是在Windows服务开始时调用的。然而,这只会导致创建一个空白文件。
假设程序中没有错误或其他问题导致它失败(事件查看器中没有显示任何内容),那么是什么阻止了输出写入文件?
也许您可以尝试设置StreamWriter的属性,如下所示:
streamWriter.AutoFlush = true;
它将在调用StreamWriter后将缓冲区刷新到基础流。写
您需要Close
(或Flush
)您的StreamWriter
来写出您的数据:
streamWriter.Close();