Warm tip: This article is reproduced from serverfault.com, please click

c#-如何过滤aspnet核心日志?

(c# - How to filter aspnet core logs?)

发布于 2018-12-09 22:54:59

下面的样板程序,Microsoft为ASP.NET Core 2.1提供的C#代码应仅防止编写信息日志。但事实并非如此。

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
        .ConfigureAppConfiguration((hostingContext, config) =>
        {
            var env = hostingContext.HostingEnvironment;
            config.AddEnvironmentVariables();
        })
        .ConfigureLogging((hostingContext, logging) =>
        {
            logging.AddConsole();
            logging.AddDebug();
            logging.AddEventSourceLogger();
        })
        .ConfigureLogging(logging => logging.SetMinimumLevel(LogLevel.Warning))
        .UseStartup<Startup>();

我仍然看到类似这样的消息:

MyApp>信息:Microsoft.AspNetCore.Mvc.RazorPages.Internal.PageActionInvoker [2]

Microsoft.AspNetCore.Mvc.RazorPages.Internal.PageActionInvoker:Information:执行的动作/索引在11.2286ms

我故意(暂时)删除了调用AppSettings.json的代码。为什么我仍然可以看到信息严重性日志项?

Questioner
Scott Pendleton
Viewed
0
Xueli Chen 2018-12-11 19:05:20

尝试在代码中进行以下更改,将第一个AddFilter的类别设置为null

 public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .ConfigureAppConfiguration((hostingContext, config) =>
            {
                var env = hostingContext.HostingEnvironment;
                config.AddEnvironmentVariables();
            })
            .ConfigureLogging((hostingContext, logging) =>
            {
                logging.AddConsole();
                logging.AddFilter(null, LogLevel.Warning);

            })
            .UseStartup<Startup>()
            .ConfigureLogging(logging => logging.AddFilter("Microsoft", LogLevel.Warning));

添加logWarning以在Home / Index中进行测试

 private readonly ILogger _logger;
    public IndexModel(ILogger<IndexModel> logger)
    {
        _logger = logger;
    }
    public void OnGet()
    {
        _logger.LogInformation("Log Information");
        _logger.LogWarning("Log Warning");
    }

结果截图

在此处输入图片说明