编写c#调试输出到.txt文件

本文关键字:txt 文件 输出 调试 编写 | 更新日期: 2023-09-27 18:12:33

我正在用。net微框架在微控制器上运行代码,我希望我的调试输出写入文本文件。这是如何工作的呢?

编写c#调试输出到.txt文件

使用Trace。它被设计成做你需要的。

using System;
using System.Diagnostics;
class Test
{
    static void Main()
    {
       Trace.Listeners.Add(new TextWriterTraceListener("yourlog.log"));
       Trace.AutoFlush = true;
       Trace.Indent();
       Trace.WriteLine("Entering Main");
       Console.WriteLine("Hello World.");
       Trace.WriteLine("Exiting Main");
       Trace.Unindent();
       Trace.Flush();
    }
}

使用开箱即用跟踪的最灵活的解决方案是创建一个应用程序配置文件,该文件将定义跟踪侦听器。

<configuration>
  <system.diagnostics>
    <trace autoflush="true">
      <listeners>
        <add name="textListener" 
             type="System.Diagnostics.TextWriterTraceListener" 
             initializeData="trace.log" />
        <remove name="Default" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

然后,在您的应用程序中,每当您想要记录某些内容时,只需执行:

Trace.WriteLine("Hello, this is a trace");

但是tracellistener类的强大之处在于它的粒度。您可以在错误、信息和警告级别之间进行选择,并为需要跟踪的级别定义不同的日志文件。使用配置文件还可以更容易地在应用程序中禁用跟踪,因为您不需要重新编译应用程序。

有关跟踪系统的更多信息,请查看此MSDN文章

Ekk关于Trace是一个更好的设计是正确的,但是这并没有回答这个问题,在没有直接解决方案的情况下,这是很好的。OP或其他人可能继承了一个从头到尾使用Debug的代码库,而Trace在当时可能是不可取的。

我找到了这个解决方案http://bytes.com/topic/c-sharp/answers/273066-redirect-output-debug-writeline:

TextWriterTraceListener[] listeners = new TextWriterTraceListener[] {
new TextWriterTraceListener("C:''debug.txt"),
new TextWriterTraceListener(Console.Out)
};
Debug.Listeners.AddRange(listeners);
Debug.WriteLine("Some Value", "Some Category");
Debug.WriteLine("Some Other Value");

您必须这样做:

// Set up listener
string filename = @"C:'listener.txt";
FileStream traceLog = new FileStream(filename, FileMode.OpenOrCreate);
TextWriterTraceListener listener = new TextWriterTraceListener(traceLog);
// Output to listener
listener.WriteLine("Trace message here");
// Flush any open output before termination.
// Maybe in an override of Form.OnClosed.
listener.Flush();

从这里取。

另一个相关问题