使用.NET Trace,然后使用NLog或log4net等作为监听器

Pro*_*ofK 6 logging log4net nlog .net-trace

我想避免编写我自己的通用日志记录接口,而是使用内置Trace功能,从一开始就不需要任何日志记录库.在我处理日志库之前,我已经在至少输出窗口中有我的跟踪信息,在这个开发阶段就足够了.

然后我想在我的应用程序中添加一个日志库,并Trace通过一个监听器耦合到它,而不是再写入日志代码.

您对此策略有何看法,并且是这些日志库的跟踪侦听器,还是其他可能或可行的快速实现的Enterprise Library?

wag*_*ghe 3

NLog 提供了一个 TraceListener,它将 Trace/TraceSource 语句路由到 NLog 日志系统。

http://nlog-project.org/2010/09/02/routing-system-diagnostics-trace-and-system-diagnostics-tracesource-logs-through-nlog.html

AFAIK log4net 没有附带 TraceListener,但编写一个应该很容易:

如何使用 log4net 记录 Trace 消息?

另外,您没有询问,但Common.Logging还提供了一种将日志记录消息(使用 Common.Logging 抽象 API)路由到 TraceListener 的方法,以及在 Common.Logging 支持的平台之间进行桥接。

请参阅此处的高级日志记录任务:

http://netcommon.sourceforge.net/docs/2.1.0/reference/html/ch01.html

就我对你的策略的看法......我认为该策略似乎是合理的。我认为我建议您考虑使用 TraceSources 而不是静态 Trace 对象。好处之一是您将拥有更精细的控制粒度(即打开/关闭某些 TraceSource 或将它们设置为不同级别)。