开发和生产asp.net core 2.2中的日志级别

Var*_*Var 3 c# logging asp.net-web-api .net-core asp.net-core

我正在使用 asp.net core mvc 和 web api 项目

有以下版本

 <TargetFramework>netcoreapp2.2</TargetFramework>
Run Code Online (Sandbox Code Playgroud)

我还使用 Microsoft.Extensions.Logging.ILogger 来记录一些信息

例如: _logger.LogInformation("special information log for xyz method");用于应用程序洞察。

所以根据这篇文章https://weblog.west-wind.com/posts/2018/Dec/31/Dont-let-ASPNET-Core-Default-Console-Logging-Slow-your-App-down

我在本地应用程序设置项目中设置了这样的日志级别,然后点击 Visual Studio 中的播放图标,并在黑色窗口中观看控制台日志。

"LogLevel": {
      "Default": "Information",
      "System": "Warning",
      "Microsoft": "Warning"
    }
Run Code Online (Sandbox Code Playgroud)

现在,当我运行我的应用程序时,我仍然可以看到这样的日志

info: Microsoft.AspNetCore.Hosting.Internal.WebHost[2]
      Request finished in 35782.1232ms 200 text/html; charset=UTF-8
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
      Request starting HTTP/1.1 GET http://localhost:57526/polyfills.js
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
      Request starting HTTP/1.1 GET http://localhost:57526/styles.js
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
      Request starting HTTP/1.1 GET http://localhost:57526/vendor.js
Run Code Online (Sandbox Code Playgroud)

问题#1:为什么我仍然能够在控制台窗口中看到此日志,其中“信息来自 Microsoft”:(

问题#2:您对生产和开发的最佳建议(经验)日志级别是什么?我不想因为想要记录记录到应用程序洞察中的信息而减慢我的应用程序速度。

程序.cs

                    // Optional: Apply filters to control what logs are sent to Application Insights.
                    // The following configures LogLevel Information or above to be sent to
                    // Application Insights for all categories.
                    logging.AddFilter<Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider>
                                 ("", LogLevel.Information);

                }
            }
        );
Run Code Online (Sandbox Code Playgroud)

Rya*_*yan 5

问题#1:为什么我仍然能够在控制台窗口中看到此日志,其中“信息来自 Microsoft”:

由于您在开发中看到日志记录,因此您需要更改日志级别appsettings.Development.json而不是appsettings.json,您可以在appsettings.json.

在此输入图像描述

问题#2:您对生产和开发的最佳建议(经验)日志级别是什么?我不想因为想要记录记录到应用程序洞察中的信息而减慢我的应用程序速度。

它有很好的记录,请参阅https://learn.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.0#log-level

在生产中:通过信息级别进行跟踪记录会生成大量详细的日志消息。为了控制成本并且不超过数据存储限制,请将 Trace through Information 级别消息记录到大容量、低成本的数据存储中。在“警告”到“严重”级别进行日志记录通常会产生更少、更小的日志消息。因此,成本和存储限制通常不是问题,这使得数据存储选择具有更大的灵活性。

开发期间:通过关键消息将警告记录到控制台。故障排除时通过信息消息添加跟踪。