启用特定严重性级别的所有.NET跟踪

时间:2010-06-25 14:38:22

标签: .net tracing

我正在学习如何使用.NET Tracing框架,而我却试图启用一些相当简单的日志记录。

我想使用MyApplication.exe.config文件将所有处于“警告”或以上的邮件记录到文本文件中。我想为应用程序中的所有源启用它,而不必在配置文件中全部指定它们。

在我的应用程序代码中,我正在调用System.Diagnostics.PresentationTraceSources.Refresh();,而在.config我尝试了以下内容:

<configuration>
<system.diagnostics>
    <trace autoflush="true" indentsize="4">
        <listeners>
            <add
                name="myListener"
                type="System.Diagnostics.TextWriterTraceListener"
                initializeData="Trace.txt" />
        </listeners>
    </trace>
</system.diagnostics>
</configuration>

但这似乎没有记录任何内容。

我唯一的成功来自明确列出.config文件中的所有来源;我想要避免,因为我想捕捉所有来源(即使是我无法控制的那些)。

1 个答案:

答案 0 :(得分:0)

.NET跟踪框架不支持此功能。它的设计理念是您只应该记录以诊断特定问题,因此您(可能)会知道哪些跟踪源适用。

如果您需要捕获所有日志记录,我会使用moles挂钩TraceSource构建或轮询TraceSource.tracesources(使用Reflection)。摩尔是优选的,因为它更清洁,支持,你不会丢失任何消息。请注意,这两种方法都不适用于生产代码;它们只能在开发过程中使用。