我想避免编写自己的通用日志接口,而是使用内置Trace
功能,开始时不需要任何日志库。在我讨论日志库之前,我至少在输出窗口中已经有了我的跟踪信息,这在这个开发阶段已经足够了。
然后我想在我的应用程序中添加一个日志库,并Trace
与一个监听器耦合,而不是编写任何更多的日志代码。
您对这个策略有什么看法,这些日志库或其他(如 Enterprise Library)的跟踪侦听器是否可以快速实施或可行?
我想避免编写自己的通用日志接口,而是使用内置Trace
功能,开始时不需要任何日志库。在我讨论日志库之前,我至少在输出窗口中已经有了我的跟踪信息,这在这个开发阶段已经足够了。
然后我想在我的应用程序中添加一个日志库,并Trace
与一个监听器耦合,而不是编写任何更多的日志代码。
您对这个策略有什么看法,这些日志库或其他(如 Enterprise Library)的跟踪侦听器是否可以快速实施或可行?
NLog 提供了一个 TraceListener,它将 Trace/TraceSource 语句路由到 NLog 日志记录系统。
AFAIK log4net 没有附带 TraceListener,但编写一个应该很容易:
此外,您没有问,但Common.Logging还提供了一种将日志消息(使用 Common.Logging 抽象 API)路由到 TraceListener 的方法,以及在 Common.Logging 支持的平台之间进行桥接。
请参阅此处的高级日志记录任务:
http://netcommon.sourceforge.net/docs/2.1.0/reference/html/ch01.html
至于我对你的策略的看法......我认为这个策略似乎是合理的。我认为我会建议您考虑使用 TraceSources 而不是静态 Trace 对象。一个好处是您将拥有更精细的控制粒度(即打开/关闭一些 TraceSource 或将它们设置在不同的级别)。