我希望能够将我的应用程序的所有控制台输出记录到文本文件中。我已经实现了 ConsoleTraceListener 和 TextWriterTraceListener,如以下帖子中所述:将 控制台输出镜像到文件
这适用于所有正常的控制台输出。但是,我还希望 StdError 流显示在日志文件中。我用一些最终抛出 DivideByZeroException 的简单代码进行了测试(代码如下所示)。使用上面帖子中建议的实现,错误消息会显示在控制台中,但不会显示在日志文件中。
有没有人对如何实现这一点有建议?请注意,我不希望重定向 Stderror 流。理想情况下,错误消息将同时显示在控制台和日志文件中。
在此先感谢您的任何建议!
Trace.Listeners.Clear();
string logfilePath = @"Q:\logfile.txt";
TextWriterTraceListener log_tracer = new TextWriterTraceListener(logfilePath);
log_tracer.TraceOutputOptions = TraceOptions.ThreadId | TraceOptions.DateTime;
ConsoleTraceListener console_tracer = new ConsoleTraceListener(false);
console_tracer.TraceOutputOptions = TraceOptions.DateTime;
Trace.Listeners.Add(log_tracer);
Trace.Listeners.Add(console_tracer);
Trace.AutoFlush = true;
Trace.WriteLine("HELLO THIS IS TO TEST THE TRACE LISTENER");
for (int a = 5; a >= 0; a--) {
Trace.WriteLine(50 / a);
}