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

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

这也可以在您的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)

  • Config文件等效:traceOutputOptions ="DateTime,Timestamp"到system.diagnostics/sources/listeners/add标签.保存[MSDN查找 - http://msdn.microsoft.com/en-us/library/a10k7w6c(v=vs.110).aspx](http://msdn.microsoft.com/en-us/library/ a10k7w6c(v = vs.110).aspx),这里的其中一个答案中提到了它.不知怎的,最终在另一个答案之前看到了MSDN. (6认同)
  • 请注意,跟踪输出选项不适用于Trace.WriteLine,只适用于Trace.TraceInformation/Trace.Trace*方法. (6认同)

小智 19

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

traceOutputOptions = "DateTime, Timestamp";
Run Code Online (Sandbox Code Playgroud)


Joe*_*orn 3

只需编写您自己的“ 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)

  • 这些应该是静态方法,因为不依赖于调用它们的对象。 (5认同)