26 c# debugging trace timestamp
在我的C#.NET应用程序中,我遇到了Trace.WriteLine()方法的问题.我使用这种方法很多,并且每次使用它时都想添加一个TimeStamp.
而不是Trace.WriteLine(DateTime.Now +"有问题!"),有没有DateTime默认的解决方案?
use*_*309 86
您可以配置TraceOutputOptions标志枚举.
var listener = new ConsoleTraceListener() { TraceOutputOptions = TraceOptions.Timestamp | TraceOptions.Callstack };
Trace.Listeners.Add(listener);
Trace.TraceInformation("hello world");
Run Code Online (Sandbox Code Playgroud)
这对Write和WriteLine不起作用,您使用了TraceXXX方法.
这也可以在您的App.config中配置,使用一些等效的并使用TraceSource:
<configuration>
<system.diagnostics>
<trace autoflush="true">
<sources>
<source name="TraceSourceApp">
<listeners>
<add name="myListener" type="System.Diagnostics.ConsoleTraceListener" traceOutputOptions="Timestamp" />
</listeners>
</source>
</sources>
</trace>
</system.diagnostics>
</configuration>
Run Code Online (Sandbox Code Playgroud)
在代码中,您可以:
private static TraceSource mySource =
new TraceSource("TraceSourceApp");
static void Main(string[] args)
{
mySource.TraceInformation("hello world");
}
Run Code Online (Sandbox Code Playgroud)
小智 19
您可以将app.config
文件设置为使用时间戳(相对和当前时间)为所有跟踪侦听器使用traceOutputOptions
traceOutputOptions = "DateTime, Timestamp";
Run Code Online (Sandbox Code Playgroud)
只需编写您自己的“ 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);}
Run Code Online (Sandbox Code Playgroud)