我试图将c#项目从.net Framework v4.6迁移到.net标准。 该项目具有log4net v2.0.8依赖性。
我发现了这个SO anwser,它建议使用.net标准1.3并引用this post以获得更详细的解决方案。
使用XmlConfigurator.Configure
方法配置log4net时出现问题,该方法要求将ILoggerRepository
作为第一个参数。
在所使用的帖子LogManager.GetRepository(Assembly.GetEntryAssembly())
方法中,但.net标准1.3中Assembly.GetEntryAssembly()
是not supported。
Official documentation也已损坏,因为XmlConfigurator.Configure
方法签名及其示例用法不匹配。
那么,如何在.net标准1.3项目中配置log4net?
答案 0 :(得分:5)
在您的.NET Standard 1.3类库项目中,在方法的签名中提供一个Assembly
参数,以照顾Log4net
的配置,例如:
public static void Configure(Assembly assembly)
{
ILoggerRepository repository = LogManager.GetRepository(assembly);
XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));
// ...
}
在完整的.NET Framework或.NET Core中开发的实际应用程序中调用此方法,并通过例如Assembly
传入此Assembly.GetEntryAssembly()
参数。
Assembly.GetEntryAssembly()
。