Asp.net core 在Log4Net中筛选Asp.netcore日志

Asp.net core 在Log4Net中筛选Asp.netcore日志,asp.net-core,log4net,log4net-configuration,Asp.net Core,Log4net,Log4net Configuration,我正在使用ASP.NET Core并创建了一个Log4net日志记录提供程序 我当前的log4net.config文件如下所示: <?xml version="1.0" encoding="utf-8" ?> <log4net debug="true"> <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="

我正在使用ASP.NET Core并创建了一个Log4net日志记录提供程序

我当前的log4net.config文件如下所示:

    <?xml version="1.0" encoding="utf-8" ?>
<log4net debug="true">
  <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="logs\\" />
    <appendToFile value="true" />
    <DatePattern value="yyyy\\\\MM\\\\dd'.inf.log'" />
    <rollingStyle value="Date" />
    <param name="StaticLogFileName" value="false" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date [%thread] %-5level %logger [%ndc] &lt;%property{auth}&gt; - %message%newline" />
    </layout>
  </appender>
  <appender ref="HangfireLoggerAppender" type="log4net.Appender.RollingFileAppender">
    <file value="logs\HangfireLog.txt" />
    <appendToFile value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="10" />
    <maximumFileSize value="1MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
    </layout>
  </appender>
  <root>
    <level value="DEBUG" />
    <appender-ref ref="LogFileAppender" />
  </root>
  <logger additivity="false" name="Hangfire">
    <level value="INFO" />
    <appender-ref ref="HangfireLoggerAppender" />
  </logger>
</log4net>

日志显示了大量asp.net核心垃圾。SQL日志等

我想过滤掉: Microsoft.AspNetCore。* Microsoft.EntityFrameworkCore*


如何使用Log4net实现这一点?

您需要在WebHostBuilder上配置日志记录,如下所示: [Program.cs->BuildWebHost(字符串[]args)]

返回WebHost.CreateDefaultBuilder(args)
.UseStartup()
配置日志记录((hostingContext,日志记录)=>
{logging.AddConfiguration(hostingContext.Configuration.GetSection(“logging”);
logging.AddFilter(“Microsoft.AspNetCore”,LogLevel.Information);
logging.AddFilter(“Microsoft.EntityFrameworkCore”,LogLevel.Information);
logging.AddConsole();
logging.AddDebug();
})
.Build();
调用logging.AddFilter方法,将名称空间指定为第一个参数,将LogLevel指定为第二个参数

如果您不想在代码中这样做,也可以使用appsettings.json文件中的配置来完成。你可以读更多

  return WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
         ConfigureLogging((hostingContext, logging) =>
             {   logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
                 logging.AddFilter("Microsoft.AspNetCore", LogLevel.Information);
                 logging.AddFilter(" Microsoft.EntityFrameworkCore", LogLevel.Information);
                 logging.AddConsole();
                 logging.AddDebug();
             })
        .Build();