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

Azure Functions隔离运行时日志噪音过滤方法咨询

解决隔离运行时Azure Function中Serilog过滤Microsoft.AspNetCore日志噪音的问题

在隔离运行时的Azure Function中,当使用Serilog作为日志提供器时,host.json中的日志级别配置不会直接作用于Serilog——因为Serilog拥有独立的过滤规则体系,需要在Serilog自身的配置中添加过滤逻辑。以下是具体的解决方案:

方法1:通过代码配置Serilog过滤规则

在初始化Serilog的LoggerConfiguration时,直接添加针对特定命名空间/类的日志级别覆盖或排除规则:

var loggingConfiguration = new LoggerConfiguration()
    .MinimumLevel.Debug()
    // 覆盖整个Microsoft.AspNetCore命名空间的日志级别为None
    .MinimumLevel.Override("Microsoft.AspNetCore", Serilog.Events.LogEventLevel.None)
    // 或者更精准地过滤指定类
    .Filter.ByExcluding(logEvent => 
        logEvent.Properties.TryGetValue("SourceContext", out var sourceContext) &&
        (sourceContext.ToString().Contains("Microsoft.AspNetCore.Hosting.Diagnostics") ||
         sourceContext.ToString().Contains("Microsoft.AspNetCore.Routing.EndpointMiddleware")))
    .ReadFrom.Configuration(configuration);

方法2:通过appsettings.json配置Serilog过滤规则

直接在appsettings.json的Serilog节点中添加MinimumLevel.Override配置,无需修改代码:

"Serilog": {
  "Using": [
    "Serilog.Sinks.AzureAnalytics",
    "Serilog.Sinks.Console"
  ],
  "MinimumLevel": {
    "Default": "Information",
    "Override": {
      // 全局覆盖Microsoft.AspNetCore命名空间
      "Microsoft.AspNetCore": "None",
      // 精准覆盖指定类
      "Microsoft.AspNetCore.Hosting.Diagnostics": "None",
      "Microsoft.AspNetCore.Routing.EndpointMiddleware": "None"
    }
  },
  "WriteTo": [
    {
      "Name": "AzureAnalytics",
      "Args": {
        "logName": "<Redacted>",
        "workspaceId": "<Redacted>",
        "authenticationId": "<Redacted>"
      }
    },
    {
      "Name": "Console",
      "Args": {
        "logName": "<Redacted>"
      }
    }                        
  ],
  "Enrich": [
    "AppName"
  ],
  "Properties": {
    "AppName": "<Redacted>"
  }
}

关键说明

  • host.json中的logging.LogLevel配置仅对Azure Functions宿主默认的日志提供器生效,当通过logBuilder.AddSerilog()将Serilog设置为日志提供器后,Serilog会忽略该配置,转而使用自身的过滤规则。
  • 若需要同时保留部分Microsoft.AspNetCore下的日志(如错误级别),可将None替换为Error等具体级别,灵活调整过滤粒度。

内容的提问来源于stack exchange,提问作者elliot-j

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 13:43:18