其他分享
首页 > 其他分享> > 自我过程的重复控制台输出

自我过程的重复控制台输出

作者:互联网

我想将我的流程控制台输出重定向到文件,同时保留将其显示在当前连接的控制台上的实用程序.

重定向很容易完成:

using (FileStream fs = new FileStream(TestLogName("Texture"), FileMode.Create, FileAccess.Write)) {
    Console.SetOut(new StreamWriter(fs));

    ...

    Console.Out.Flush();
}

但是,如何在已连接的控制台上维护控制台输出时又实现相同的结果(事实上是复制流)?

解决方法:

您可以使用可写入文件的类和另一个TextWriter类来继承TextWriter.然后使用System.Console.Out的当前值初始化此类的实例.

var writer = new SplitWriter(Console.Out, @"c:\temp\logfile.txt");
Console.SetOut(writer);

然后,SplitWriter负责写入文件和Console.Out的原始值.

标签:console,io-redirection,c
来源: https://codeday.me/bug/20191102/1990584.html