使用 .NET Core 应用程序配置 Log4Net
Log4Net config with .NET Core app
我需要在新的 .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
它崩溃了
有什么建议吗?
您可以通过下面的语句获取默认值repository
,
并将那个作为 Configure
方法的参数传递。
ILoggerRepository repository = log4net.LogManager.GetRepository(Assembly.GetCallingAssembly());
根据您的设置,您可能需要改用 Assembly.GetExecutingAssembly()
。
我需要在新的 .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
它崩溃了
有什么建议吗?
您可以通过下面的语句获取默认值repository
,
并将那个作为 Configure
方法的参数传递。
ILoggerRepository repository = log4net.LogManager.GetRepository(Assembly.GetCallingAssembly());
根据您的设置,您可能需要改用 Assembly.GetExecutingAssembly()
。