6

我已经开始使用内置的 TraceSource 和 TraceListener 类,我想独立于 TraceSources 和 TraceListeners 修改事件的输出格式。TraceListener 似乎应用了自己的格式。是否可以在不为我使用的每个 TraceListener 创建新类的情况下完全更改格式?

4

4 回答 4

5

企业库日志记录应用程序块 ( http://msdn.microsoft.com/en-us/library/cc309506.aspx ) 建立在 .Net TraceSource 和 TraceListener 类之上(因此您几乎可以将其放入您的项目中并它会起作用),并且它支持您可以在 web.config(或 app.config)中配置的消息格式化程序。

于 2009-05-12T19:49:25.550 回答
2

这已经很晚了,但是对于任何可能正在寻找支持类似于 log4net、NLog 和 LAB 中可用格式的 TraceSource/TraceListener 解决方案的后来者,您可以尝试Ukadc.Diagnostics。您可以使用格式化字符串配置 Ukadc 提供的 TraceListeners,它将在将跟踪写入侦听器时应用。您还可以编写自己的标记并将它们添加到格式化语句中。例如,我为了好玩而写了一个,它只是在每次检索到它的值时递增一个计数器。结果是在日志文件中,每一行都会收到一个顺序增加的数字。我写了另一个允许将来自 Trace.CorrelationManager.LogicalOperationStack 的信息添加到输出中。

我现在无法轻松访问具有该功能的计算机,否则我会发布这些示例。

于 2010-08-26T23:20:41.073 回答
0

您可以使用直接Write()WriteLine()方法Trace将直接文本放入 TraceListener。

于 2009-04-30T11:51:38.477 回答
0

对于最终来到这里并仍在寻找 TraceListeners 的自定义格式的任何人,还有 Essential.Diagnostics https://essentialdiagnostics.codeplex.com/(披露:我参与了该项目)。

要回答最初的问题,TraceListener 可以接受配置中的自定义属性,因此可以编写一个 TraceListener 来处理基于配置的多种格式,这可能比编写多个更灵活。

这就是 Essential.Diagnostics 所拥有的,它同时具有支持自定义格式字符串的 ColoredConsoleTraceListener 和 RollingFileTraceListener,许多格式值已经可用。

于 2017-02-10T03:52:41.513 回答