将时间戳添加到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
,如此处所述。