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

在.NET Core 3.1 Azure Functions中使用Log4Net屏蔽微软冗余日志

解决方案

1. 修正host.json配置结构

你遇到的冗余日志都属于Microsoft.Azure.WebJobs命名空间,原有配置未覆盖该细分命名空间,且Azure Functions v3(对应.NET Core 3.1运行时)有专属的日志规则优先级,需要补充对应配置,修正后的host.json示例:

{
  "version": "2.0",
  "logging": {
    "logLevel": {
      "Default": "Debug",
      "System": "Error",
      "Microsoft": "Error",
      "Microsoft.Azure.WebJobs": "Error",
      "Host.Results": "Error",
      "Host.Aggregator": "Error",
      "Function": "Debug"
    }
  }
}

2. 配置Log4Net独立过滤规则

Log4Net作为第三方日志组件,不会自动继承.NET Core的日志过滤规则,需要在log4net.config的对应appender节点下添加命名空间过滤,示例如下:

<appender name="YourLogAppender" type="log4net.Appender.RollingFileAppender">
  <!-- 原有输出路径、格式等配置保留 -->
  <!-- 过滤System开头的非Error日志 -->
  <filter type="log4net.Filter.LoggerMatchFilter">
    <loggerToMatch value="System" />
    <acceptOnMatch value="false" />
  </filter>
  <!-- 过滤Microsoft开头的非Error日志 -->
  <filter type="log4net.Filter.LoggerMatchFilter">
    <loggerToMatch value="Microsoft" />
    <acceptOnMatch value="false" />
  </filter>
  <!-- 可按需保留自定义业务日志的输出级别 -->
  <filter type="log4net.Filter.LevelRangeFilter">
    <levelMin value="Debug" />
    <levelMax value="Fatal" />
  </filter>
</appender>

3. 调整Program.cs日志注册逻辑

确保日志注册时读取了配置文件的过滤规则,避免默认日志提供器干扰,示例代码:

public static void Main()
{
    var host = new HostBuilder()
        .ConfigureFunctionsWorkerDefaults()
        .ConfigureLogging(logging =>
        {
            // 移除默认日志提供器避免重复输出
            logging.ClearProviders();
            // 加载配置文件中的日志过滤规则
            logging.AddConfiguration(Configuration.GetSection("Logging"));
            // 注册Log4Net
            logging.AddLog4Net("log4net.config", true);
        })
        .Build();
    host.Run();
}

4. 排查Azure端配置覆盖

如果部署到Azure后仍有冗余日志,需要检查Azure门户函数应用的「配置」-「应用程序设置」,是否存在Logging__LogLevel__Microsoft这类配置项,云端配置优先级高于本地配置文件,需同步修改为Error级别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:09:03