【发布时间】:2015-10-03 12:40:02
【问题描述】:
我正在尝试创建一个记录器,将所有堆栈跟踪记录到我的文本文件“log.txt”中。当我运行此代码时,会在目录中创建一个空白 log.txt 文档,但 txt 文件中没有写入任何内容。
我的以下代码如下:
public void Log()
{
// Create a file for output .txt.
Stream debugFile = File.Create(@"C:\temp\log.txt");
// create TextWriterTraceListener named "file"
TextWriterTraceListener debugWriter = new TextWriterTraceListener(debugFile, "file");
// add to debug listeners
Debug.Listeners.Add(debugWriter);
// set callstack to be shown
Debug.Listeners["file"].TraceOutputOptions |= TraceOptions.Callstack;
// set auto-flush
Debug.AutoFlush = true;
Debug.WriteLine("Message: " + Environment.StackTrace);
debugFile.Close();
}
【问题讨论】:
-
使用您拥有的代码示例,我无法重现您的问题。我的日志文件里面有文本。如果我将配置更改为 Release,则日志文件为空。
-
你设置了 DEBUG 标志,对吧?
-
我在构建配置中设置了 Active(Debug)。
-
再次检查“定义调试常量”框是否被选中。如果不是,
Debug不会写任何东西 -
谢谢,它成功了。选中“定义跟踪常数”框有什么作用?
标签: c# logging tracelistener