【问题标题】:Enable DEBUG level logs of the Microsoft.AspNetCore namespace启用 Microsoft.AspNetCore 命名空间的 DEBUG 级别日志
【发布时间】:2021-10-28 14:45:18
【问题描述】:

我在我的 ASP.net Core 应用程序中使用log4net,并具有以下配置:

// Program.cs
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .ConfigureLogging((logging) => {
            logging.ClearProviders();
            logging.AddLog4Net();
        }).UseStartup<Startup>();

我的配置:

<log4net>
    <appender name="Console" type="log4net.Appender.ConsoleAppender">
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%-5date %-5level [%thread] %type.%method:%line - %message%newline" />
        </layout>
    </appender>
    
    <!-- log everything coming from AspNetCore -->
    <logger name="Microsoft.AspNetCore" additivity="false">
        <level value="Debug" />
        <appender-ref ref="Console" />
    </logger>
    
    <root>
        <level value="Info" />
        <appender-ref ref="Console" />
    </root>
</log4net>

我想要达到的目标:

  • 禁用我在 Azure 应用服务中看到的日志消息(许多 HTTP GET 和 HTTP POST 日志,可能来自 IIS 日志)
  • 拥有来自Microsoft.AspNetCore 的任何内容的调试级别日志

我错过了什么?如果我使用 log4net,是否还需要 appsettings.json 文件中的“日志记录”部分?如果我添加以下内容,我将能够看到日志,但为什么需要它?这不应该从log4net.conf 文件中控制吗?

"Logging": {
  "LogLevel": {
     "Microsoft": "Debug"
  }
}

【问题讨论】:

    标签: c# asp.net logging azure-web-app-service log4net


    【解决方案1】:

    您必须在appsettings.Development.json 中考虑到低于开发版本信息级别的日志记录级别消息,如documentation 中指定的那样,如下所示:

    {
         "Logging": {
             "LogLevel": {
                 "Default": "Debug",
                 "...":"..."
              }
         }
    }
    

    here

    默认情况下会在 Asp.net 核心应用程序中生成 appsettings.json 文件。

    日志配置通常由 appsettings.{Environment}.json 文件的 Logging 部分提供。 appsettings.Development.json 文件由 ASP.NET Core Web 应用模板生成:

    {
        "Logging": {
            "LogLevel": {
                "Default": "Information",
                "Microsoft": "Debug",
                "Microsoft.Hosting.Lifetime": "Information"
              }
         }
    }
    

    日志记录类别是

    如果未设置"default"日志级别,则默认日志级别值为Information.

    "Microsoft" 类别日志在日志级别 Debug 及更高级别。

    "Microsoft.Hosting.Lifetime" 类别的日志级别为“信息”及更高级别。

    日志级别如下:

    Trace = 0、Debug = 1、Information = 2、Warning = 3、Error = 4、Critical = 5、None = 6。

    参考here for more info

    检查here 是否禁用 IIS 日志

    【讨论】:

      猜你喜欢
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多