我已经使用 Common.Logging 四年了,我可以将它与 NLog2 一起使用。要彻底回答您的问题,我们需要先仔细查看 Common.Logging。Common.Logging 为您带来两个好处:
从 1.x 开始,Common.Logging 允许您编写独立于日志框架的应用程序。因此,您可以轻松地从一个日志记录框架更改为另一个,甚至无需重新编译您的应用程序。这对于开发通用库特别有用,可以由使用不同日志框架的各种应用程序使用。
从 2.x 开始,Common.Logging 允许您聚合来自各种日志框架的日志信息。假设我们正在开发一个应用程序并且想要利用两个第 3 部分库,比如 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,您可以简单地进行程序集重定向(请参阅我的答案:Can NLog v2 与 Common.Logging 一起使用)。
话虽如此,如果您想使用 Common.Logging 将 NLog2 消息聚合到其他日志框架,则程序集重定向方法将不起作用。必须创建一个 NLog2 特定的适配器。
就像@Kugel 所说,不活跃可能意味着稳定和成熟。由于 Common.Logging 与各种日志框架一起工作,因此不太可能在每次受支持的日志框架发布时发布新版本。否则,它可能比帮助更混乱。因此,应始终首先考虑程序集重定向。只有当确实出现不兼容问题时,就像我提到的 NLog2 消息重定向,发送电子邮件到邮件列表,我相信有人会介入并提供帮助。
干杯,肯尼斯