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

部署后Azure Function的ILogger LogInformation日志未完整输出

Durable Azure Function Information级日志丢失修复

直接按以下步骤核对配置,90%以上的日志丢失都是这几个配置遗漏导致:

1. 补全host.json日志配置

本地运行时默认用宽松的日志规则,部署到Azure后会加载生产默认规则,必须显式配置日志级别、关闭采样,以下是可直接复用的配置片段:

{
  "version": "2.0",
  "logging": {
    "logLevel": {
      "default": "Information",
      "Function": "Information",
      "DurableTask.Core": "Information",
      "DurableTask.AzureStorage": "Information",
      "Microsoft.Azure.WebJobs.Extensions.DurableTask": "Information",
      "Host.Results": "Error",
      "Host.Aggregator": "Trace"
    },
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": false
      }
    }
  },
  "extensions": {
    "durableTask": {
      "tracing": {
        "traceReplayEvents": true
      }
    }
  }
}

2. 对应配置项说明

  • 关闭采样:Azure Function生产环境默认开启自适应采样,会根据负载动态丢弃Information级日志,相邻日志只输出一条基本都是采样规则导致的。本地环境默认不开启采样所以日志全量打印,低流量测试环境直接把isEnabled设为false即可,生产环境如果流量较高可自定义采样规则,必须排除Durable Task相关命名空间的日志不参与采样。
  • 显式指定Durable Task命名空间日志级别:默认生产配置下DurableTask相关命名空间的最低日志级别是Warning,不会输出Information级日志,必须显式设为Information才能采集你在Durable函数上下文里输出的日志。
  • 开启重放事件追踪:Durable Function的Orchestrator函数会在等待异步任务返回后多次重放执行,默认框架会自动过滤重放过程中重复输出的日志,就会出现同一代码块里相邻日志有的输出有的被过滤的情况,把traceReplayEvents设为true就会记录所有执行过程的日志,包括重放阶段的输出。

3. 额外排查点

  • 检查Azure门户函数应用的应用程序设置:如果在配置里加了AzureFunctionsJobHost__logging__开头的相关配置,优先级会高于host.json,会覆盖你部署的文件里的配置,要删掉这类冲突配置,或者显式设为正确值。
  • 检查日志流页面筛选规则:Azure门户日志流页面顶部默认的日志级别筛选经常默认选中Warning,会直接过滤掉Information级日志,这种情况只是页面不显示,不会影响日志写入存储。

注意:Orchestrator函数的重放机制会导致同一行代码多次执行,非排查场景不建议在Orchestrator里输出大量日志,排查类日志尽量放到Activity函数里输出,不会受重放过滤影响。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:48:19