.Net TraceSource/TraceListener框架是否具有类似于log4net';s格式化程序

本文关键字:log4net 程序 格式化 类似于 TraceSource TraceListener 框架 是否 Net | 更新日期: 2023-09-27 17:47:47

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

.Net TraceSource/TraceListener框架是否具有类似于log4net';s格式化程序

企业库日志应用程序块(http://msdn.microsoft.com/en-us/library/cc309506.aspx)它构建在.Net TraceSource和TraceListener类上(所以你几乎可以把它放进你的项目中,它就会工作),并且它支持一个消息格式化程序,你可以在web.config(或app.config)中配置它。

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

我现在无法轻松访问我的计算机,否则我会发布这些例子。

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

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

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

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