San*_*yev 2 c# log4net .net-standard
我试图将ac#项目从.net框架v4.6迁移到.net标准。该项目具有log4net v2.0.8依赖性。
我找到了这个SO anwser,它建议使用.net standard 1.3,并提供了这篇文章的参考,以获取更多详细的解决方案。
使用XmlConfigurator.Configure方法(需要ILoggerRepository第一个参数)配置log4net时会发生问题。
在帖子中LogManager.GetRepository(Assembly.GetEntryAssembly())使用的方法,但是Assembly.GetEntryAssembly()是不支持在.NET 1.3标准。
官方文档也被破坏了,因为XmlConfigurator.Configure方法签名及其示例用法不匹配。
那么,如何在.net标准1.3项目中配置log4net?
在您的.NET Standard 1.3类库项目中,Assembly在方法的签名中提供一个参数,以进行Log4net配置,例如:
public static void Configure(Assembly assembly)
{
ILoggerRepository repository = LogManager.GetRepository(assembly);
XmlConfigurator.Configure(repository, new FileInfo("log4net.config"));
// ...
}
Run Code Online (Sandbox Code Playgroud)
从实际的应用程序调用该方法,无论是在完整的.NET Framework或.NET的核心开发,通过这一Assembly论点通过例如:Assembly.GetEntryAssembly()。
Assembly.GetEntryAssembly() 完整的.NET Framework和.NET Core均受支持。
| 归档时间: |
|
| 查看次数: |
943 次 |
| 最近记录: |