我需要在新的.NET Core应用程序上使用log4net,该应用程序引用了一些使用log4net的刚编写的程序集。
我已经四处搜索,但所有示例只是将FileInfo
传递给log4net.Config.XmlConfigurator.Configure
,但使用最新版本请求第一个类型ILoggerRepository repository
我应该通过什么?
我的代码是
public static void Main(string[] args)
{
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json");
var configuration = builder.Build();
ContainerConfig.RegisterDependencies(configuration);
MappingConfig.RegisterMapping();
var fileInfo = new FileInfo(@"\config.log4net");
log4net.Config.XmlConfigurator.Configure(null, fileInfo);
var core = ContainerWrapper.Container.GetInstance<ICore>();
core.StartAsync().Wait();
Console.Write("Press a key to exit");
Console.ReadLine();
}
但是null
崩溃了
有什么建议吗?
答案 0 :(得分:6)
您可以通过以下语句获取默认repository
,
并将那一个作为Configure
方法的参数传递。
ILoggerRepository repository = log4net.LogManager.GetRepository(Assembly.GetCallingAssembly());
根据您的设置,您可能需要使用Assembly.GetExecutingAssembly()
。