ASP.NET Core 中的 log4net 不会在更改时重新加载

问题描述

根据Apache log4net™ Manual - Configuration - appSettings,我将这两行添加到我的 web.config 中,以查看我的 log4net.config 文件的更改(例如,在运行时更改日志级别...)

<appSettings>
  <add key="log4net.Config" value="log4net.config"/>
  <add key="log4net.Config.Watch" value="True"/>
</appSettings>

不幸的是,它不起作用,因此无需重新启动应用程序即可应用日志级别的更改。我正在使用 ASP.Net Core 5.0,该应用程序使用 appSettings.json 而不是 web.config

解决方法

使用 Microsoft.Extensions.Logging.Log4Net.AspNetCore,就这么简单:

services.AddLogging(logging =>
{
    logging.AddLog4Net(new Log4NetProviderOptions { Watch = true });
});

或者在您的情况下:

services.AddLogging(logging =>
{
    logging.AddLog4Net("log4net.config",true);
});