【发布时间】:2019-04-09 06:35:33
【问题描述】:
我正在尝试将项目迁移到 .net 标准,它基本上是一个类库。 我正在使用 log4net 进行日志记录,并且我正在使用该方法
public static ILog GetLogger(string name);
由于这是一个被多个项目引用的库,因此不应定义存储库,因为每个项目引用该库时,都会定义它自己的日志存储库。 在移植到 .Net 标准时如何规避这个问题?
【问题讨论】:
-
你应该不使用
ILog。请改用Microsoft.Extensions.Logging.Abstractions接口并将它们配置为使用log4net 作为实际的记录器。您不能强制库的用户使用 Log4Net。日志记录抽象也已成为事实上的标准,这意味着 NuGet 包已经支持它们 -
This answer 展示了将 log4net 与日志抽象集成是多么容易。然后,您可以使用 DI 将适当的记录器注入每个类并避免静态记录器实例
标签: c# log4net .net-standard