代码之家  ›  专栏  ›  技术社区  ›  Ben Brandt

覆盖系统。诊断。追踪。WriteLine用于记录文件

  •  12
  • Ben Brandt  · 技术社区  · 16 年前

    这可能更像是一个面向对象的概念问题,但这是我想做的。

    我有一个使用System输出调试信息的应用程序。诊断。追踪。WriteLine,以便可以使用DebugView查看。

    2 回复  |  直到 16 年前
        1
  •  27
  •   Jon Skeet    12 年前

    您是否仍然坚持使用Trace?如果没有,我会使用功能更全面的日志系统,例如 Log4Net .

    Trace 然后您可以重新配置 TraceListener app.config 文件。这 TraceListener MSDN docs 举一个类似这样的例子:

    <configuration>
      <system.diagnostics>
        <trace autoflush="false" indentsize="4">
          <listeners>
            <add name="fileLogger" 
                 type="System.Diagnostics.TextWriterTraceListener" 
                 initializeData="LogFile.log" />
            <remove name="Default" />
          </listeners>
        </trace>
      </system.diagnostics>
    </configuration>
    

    TextWriterTraceListener 将日志转储到给定的文件。(还有其他选择。)

    或者,您可以通过编程方式完成此操作:

    Trace.Listeners.Add(new TextWriterTraceListener("foo.log"));
    

    请注意,在应用程序退出之前,您可能需要显式地刷新跟踪,可以使用以下方式之一:

    Trace.Flush();
    

    foreach (TraceListener listener in Trace.Listeners)
    {
        listener.Flush();
    }
    

    Trace.AutoFlush autoflush

        2
  •  3
  •   jellomonkey    16 年前

    有一个TextWriterTraceListener,您可以将其配置为将跟踪日志输出到文件。配置信息可以在MSDN上找到:

    http://msdn.microsoft.com/en-us/library/system.diagnostics.textwritertracelistener(VS.80).aspx

    您还可以将数据转储到事件日志或其他各种位置,以获取您可以在此处查看的内置跟踪侦听器列表:

    http://msdn.microsoft.com/en-us/library/4y5y10s7(VS.80).aspx