ate*_*iob 3 c# app-config winforms tracelistener
我在C# 文章中使用Trace Listener跟踪了这个创建记录器,并相信只会Trace.WriteLine()在application.log文件中写入语句:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="myListener" type="System.Diagnostics.TextWriterTraceListener" initializeData="application.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
Run Code Online (Sandbox Code Playgroud)
但令我沮丧的是,我Debug.WriteLine()以前转到Output选项卡的所有内容都从该选项卡中消失了,而现在它们都转到了跟踪文件中application.log.
有没有办法只指导 Trace.WriteLine()陈述application.log?
如果没有,WriteLine()对于我自己的文件最简单的方法是什么,我只选择登录到该文件,而不是我的整个调试会话?
不确定您在<remove name="Default" />从配置中删除该行时的预期会让您在"输出"选项卡中返回输出.您可以看到DefaultTraceListener使用OutputDebugString方法,该方法允许VS在"输出"选项卡中显示日志.
跟踪发送给所有监听器,监听器本身可以进行过滤.
如果要对跟踪进行更多分类 - 请参阅System.Diagnostic命名空间中的其他类,如TraceSource,其中的示例如何 - 跟踪源:
private static TraceSource mySource = new TraceSource("TraceSourceApp");
...
mySource.TraceEvent(TraceEventType.Error, 1, "Error message.");
Run Code Online (Sandbox Code Playgroud)