使用.NET Core应用程序配置Log4Net

6

我需要在一个引用了使用log4net的新的.NET Core应用程序中使用log4net。我已经搜索过了,但是所有的例子都只传递一个FileInfolog4net.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时会崩溃。
有什么建议吗?
1个回答

9
您可以通过以下语句获取默认的repository,并将其作为Configure方法的参数传递。
ILoggerRepository repository = log4net.LogManager.GetRepository(Assembly.GetCallingAssembly());

根据您的设置,您可能需要使用Assembly.GetExecutingAssembly()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接