在C#控制台应用程序中,有没有一种将控制台输出镜像到文本文件的聪明方法?
目前,我只是在日志(log)方法中将相同的字符串传递给Console.WriteLine
和InstanceOfStreamWriter.WriteLine
.
在C#控制台应用程序中,有没有一种将控制台输出镜像到文本文件的聪明方法?
目前,我只是在日志(log)方法中将相同的字符串传递给Console.WriteLine
和InstanceOfStreamWriter.WriteLine
.
这可能是更多的工作,但我会反过来做.
为控制台实例化TraceListener
,为日志(log)文件实例化一个;然后在代码中使用Trace.Write
条语句,而不是Console.Write
条.之后,删除日志(log)或控制台输出或附加另一个日志(log)机制变得更加容易.
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.");
}
据我所知,您可以在应用程序配置中定义侦听器,这样就可以在不接触构建的情况下激活或停用日志(log)记录.