You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux版Azure AppService托管.NET 5.0应用日志流均显示为Info级别如何解决

问题根因

Linux版Azure App Service的默认日志收集机制会将应用输出到stdout/stderr的所有内容统一标记为INFO级别,而.NET默认的控制台日志输出只将级别信息放在ANSI颜色码中,没有输出到日志行的明文字段,因此Azure的日志收集器无法识别实际的日志级别。

解决方案

方案1:修改.NET控制台日志配置(最快捷)

修改你的appsettings.json,添加控制台日志的格式化配置,禁用ANSI颜色并将日志级别明文输出到行首:

{
  "Logging": {
    "Console": {
      "FormatterName": "Simple",
      "FormatterOptions": {
        "SingleLine": true,
        "IncludeScopes": false,
        "TimestampFormat": "yyyy-MM-ddTHH:mm:ss.fffZ ",
        "UseUtcTimestamp": true
      }
    },
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  }
}

若你自定义过主机生成逻辑,需要确认Program.cs中已启用控制台日志(.NET 5默认已自带该配置):

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureLogging(logging =>
        {
            logging.AddConsole();
        })
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
        });

配置后重启应用,即使Log Stream前缀仍显示[INFO],你也可以直接通过日志内容里的warn/fail等明文级别关键字筛选日志。

方案2:启用App Service诊断日志(支持元数据级别识别)

如果需要让Log Stream的级别标记完全匹配实际日志级别,可以按以下步骤配置:

  1. 进入Azure门户中对应的App Service资源,打开监视 > 应用服务日志配置页
  2. 开启**应用程序日志(文件系统)**选项,选择你需要采集的最低日志级别(比如Warning)
  3. 保存配置后重启应用,此时Log Stream会直接读取Azure诊断日志的记录,会正确标记Warning/Error等级别,不会再统一显示INFO。

方案3:集成Application Insights(进阶需求)

如果需要更完善的日志检索、告警、统计能力,可以为应用集成Azure Application Insights,所有日志级别会被完整保留,还支持多维度筛选分析。


内容的提问来源于stack exchange,提问作者shadeglare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:36:04