在 C# 控制台应用程序中,是否有一种巧妙的方法可以将控制台输出镜像到文本文件?
目前我只是在日志方法中将相同的字符串传递给 Console.WriteLine
和 InstanceOfStreamWriter.WriteLine
。
最佳答案
这可能需要更多工作,但我会反过来。
为控制台实例化一个TraceListener
,为日志文件实例化一个;此后在您的代码中使用 Trace.Write
语句而不是 Console.Write
。之后删除日志、控制台输出或附加其他日志记录机制变得更加容易。
static void Main(string[] args)
{
Trace.Listeners.Clear();
TextWriterTraceListener twtl = new TextWriterTraceListener(Path.Combine(Path.GetTempPath(), AppDomain.CurrentDomain.FriendlyName));
twtl.Name = "TextLogger";
twtl.TraceOutputOptions = TraceOptions.ThreadId | TraceOptions.DateTime;
ConsoleTraceListener ctl = new ConsoleTraceListener(false);
ctl.TraceOutputOptions = TraceOptions.DateTime;
Trace.Listeners.Add(twtl);
Trace.Listeners.Add(ctl);
Trace.AutoFlush = true;
Trace.WriteLine("The first line to be in the logfile and on the console.");
}
据我所知,您可以在应用程序配置中定义监听器,从而可以在不触及构建的情况下激活或停用日志记录。
关于c# - 将控制台输出镜像到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/420429/