将时间戳添加到Trace.WriteLine()

在我的C#.NET应用程序中,我遇到了Trace.WriteLine()方法的问题。 我使用这种方法很多,并且每次使用时都想添加TimeStamp。

而不是Trace.WriteLine(DateTime.Now +“有问题!”),有没有DateTime默认的解决方案?

只需编写自己的“ TraceLine(string msg) ”方法并开始调用:

 void TraceLine(string msg, bool OmitDate) { if (!OmitDate) msg = DateTime.Now + " " + msg; Trace.WriteLine(msg); } void TraceLine(string msg) {TraceLine(msg, false);} 

通过代码

您可以配置TraceOutputOptions标志枚举。

 var listener = new ConsoleTraceListener() { TraceOutputOptions = TraceOptions.Timestamp | TraceOptions.Callstack }; Trace.Listeners.Add(listener); Trace.TraceInformation("hello world"); 

这对Write和WriteLine不起作用,您使用了TraceXXX方法。

通过app.config

这也可以在你的App.config中配置一些,并使用TraceSource:

              

在代码中,您可以:

 private static TraceSource mySource = new TraceSource("TraceSourceApp"); static void Main(string[] args) { mySource.TraceInformation("hello world"); } 

您可以将app.config文件设置为使用traceOutputOptions为所有跟踪侦听器使用时间戳(相对和当前时间)

 traceOutputOptions = "DateTime, Timestamp"; 

您可以编写一个包装器方法来执行它:

 public static void DoTrace(string message) { DoTrace(message,true); } public static void DoTrace(string message, bool includeDate) { if (includeDate) { Trace.WriteLine(DateTime.Now + ": " + message); } else { Trace.WriteLine(message); } } 

我们使用log4net TraceAppender,您可以在其中轻松配置布局或过滤。

您可以编写自己的TextWriterTraceListener ,如此处所述。