Common.Logging还有其他选择吗?

Tom*_*son 21 .net logging nlog common.logging

编辑:Common.Logging 2.1.1于2012年6月9日发布,Github页面相当活跃,作者专门评论了项目的健康状况.

我们正在考虑在新的.NET项目中使用Common.Logging,但我有点担心项目似乎变得不活跃.该主页最后一次更新于2009年,SourceForge上最新版本于2010年创建.我已经发现与NLog 2不兼容,我担心随着时间的推移,这可能会成为一个更大的问题.我注意到Enterprise Library 5.0没有列为兼容,但我没有尝试过.

是否有其他替代方案可提供类似的通用接口?

Ken*_* Xu 17

我已经使用Common.Logging四年了,我可以将它与NLog2一起使用.要彻底回答您的问题,我们需要先仔细看看Common.Logging.Common.Logging为您带来两个好处:

  1. 从1.x开始,Common.Logging允许您独立于日志框架编写应用程序.因此,您无需重新编译应用程序即可轻松地从一个日志框架更改为另一个日志框架.这对于公共库的开发特别有用,可以由使用不同日志框架的各种应用程序使用.

  2. 从2.x开始,Common.Logging允许您聚合来自各种日志框架的日志记录信息.假设我们正在开发一个应用程序,并希望利用两个第三方库,比如A3rd.dll和B3rd.dll.A3rd.dll使用log4net,但B3rd.dll使用NLog.现在,如何将来自A3rd.dll和B3rd.dll的日志信息整合到一个日志文件(或日志监控系统)中?例如,Common.Logging可以帮助它从NLog捕获日志消息并将其发送到log4net,然后让log4net将其写入日志文件或将其发送到log4net可以执行的任何地方.

现在,回到NLog2.NLog2中的日志API与NLog1向后兼容,但配置和定位的API已更改.因此,如果您只需要将日志消息发送到NLog2,您只需执行程序集重定向(请参阅我的答案:NLog v2可以与Common.Logging一起使用).

话虽这么说,如果你想使用Common.Logging将NLog2消息聚合到其他日志框架,那么程序集重定向方法将不起作用.必须创建NLog2特定的适配器.

就像@Kugel所说,不活跃可能意味着稳定和成熟.由于Common.Logging适用于各种日志框架,因此每次支持的日志框架之一发布时,都不太可能发布新版本.它可能比帮助更混乱.因此,应始终首先考虑装配重定向.只有当真正出现不兼容问题时,就像我提到的NLog2消息重定向一样,发送电子邮件到邮件列表,我相信有人会跳进去帮忙.

干杯,肯尼思

  • 非常有用的东西,尤其是程序集重定向.我仍然认为,如果Common.Logging团队希望让人们使用他们的项目,那么对网站的一些更新至少可能是好的 - 例如记录程序集重定向.仅仅因为代码稳定且不变,这并不意味着网站也应该是静态的. (6认同)