C# .Net TraceSource/TraceListener框架是否具有类似于log4net';什么是格式化程序?

C# .Net TraceSource/TraceListener框架是否具有类似于log4net';什么是格式化程序?,c#,.net,trace,C#,.net,Trace,我已经开始讨论内置的TraceSource和TraceListener类,我想独立于TraceSource和TraceListener修改事件的输出格式。TraceListener似乎应用了自己的格式。是否可以在不为我使用的每个TraceListener创建新类的情况下完全更改格式?您可以使用Trace上的directWrite()或WriteLine()方法将直接文本放入TraceListener。企业库日志应用程序块()它构建在.Net TraceSource和TraceListener类上

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

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

企业库日志应用程序块()它构建在.Net TraceSource和TraceListener类上(因此您几乎可以将其放入您的项目中,它就会工作),并且它支持您可以在web.config(或app.config)中配置的消息格式化程序

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


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

对于任何来到这里并仍在为TraceListener寻找自定义格式的人来说,还有必要的。诊断(披露:我参与了该项目)

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


这是必不可少的。Diagnostics有一个ColoredConsoleTraceListener和一个RollingFileTraceListener,它们支持自定义格式字符串,并且已经有许多格式值可用。

问题是关于TraceSource,而不是Trace。EntLib的性能非常差,因此我建议不要使用它。比较如下: