アプリケーションからのすべてのコンソール出力をテキスト ファイルに記録できるようにしたいと考えています。次の投稿で説明されているように、ConsoleTraceListener と TextWriterTraceListener を実装しました: Mirroring console output to a file
これは、すべての通常のコンソール出力でうまく機能します。ただし、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);
}