将C#调试输出写入.txt文件

我在使用.NET Micro Framework的微控制器上运行代码,我希望我的调试输出写入文本文件。 这是如何运作的?

使用跟踪 。 它旨在满足您的需求。

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(); } } 

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

           

然后,在您的应用程序中,只要您想记录某些内容,只需执行以下操作:

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

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

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

Ekk对于Trace是一个更好的设计是正确的,但是这并没有回答这个问题,在没有直接解决方案的情况下这会很好。 OP或某人可能inheritance了一个完全使用Debug的代码库,当时可能不需要Trace。

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

 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(); 

从这里开始 。

另一个相关问题

Interesting Posts