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

Azure Function App日志配置疑问:Application Insights仅显示Warning级日志

Azure Function App 日志到 Application Insights 不完整问题的解决配置

1. 核心配置:调整 host.json 日志规则

直接修改项目根目录的host.json,重点调整logging节点:

  • 全局logLevel需覆盖你需要的日志类别,比如将自身函数命名空间设为Trace,确保低级别日志能被捕获:
"logLevel": {
  "Default": "Information",
  "Your.Function.Namespace": "Trace", // 替换为你的函数实际命名空间
  "Microsoft": "Warning" // 系统日志级别,按需调整
}
  • 单独配置applicationInsights节点,避免它覆盖全局规则,强制所有级别日志发送到AI:
"applicationInsights": {
  "samplingSettings": {
    "isEnabled": true,
    "excludedTypes": "Request"
  },
  "logLevel": {
    "Default": "Trace" // 关键配置:确保AI接收全级别日志
  }
}

若applicationInsights未显式设置logLevel,可能会存在隐性过滤,直接配置更稳妥。

2. 测试阶段临时关闭采样

采样是AI默认的流量控制机制,测试时可临时关闭以确保全量日志上报:
将samplingSettings中的isEnabled改为false,生产环境记得改回true,避免日志量过载。

3. 代码中使用标准日志接口

禁止使用Console.WriteLine这类非标准日志方式,必须依赖注入ILogger:

public class MyFunction
{
    private readonly ILogger<MyFunction> _logger;

    public MyFunction(ILogger<MyFunction> logger) => _logger = logger;

    [FunctionName("MyFunction")]
    public async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req)
    {
        _logger.LogTrace("Trace级日志内容");
        _logger.LogInformation("Info级日志内容");
        _logger.LogWarning("Warning级日志内容");
        // 业务逻辑代码
    }
}

只有通过ILogger输出的日志才会被Azure Functions日志管道捕获并发送到AI。

4. Azure门户端配置检查

  • 确认函数应用配置中的APPINSIGHTS_INSTRUMENTATIONKEY配置正确,无拼写错误
  • 查询AI的traces时,注意选择足够长的时间范围,日志通常有1-5分钟的延迟
  • 若门户中存在APPINSIGHTS_LOG_LEVEL这类应用设置,会直接覆盖host.json配置,可删除或调整为所需级别

5. 系统日志(如"Sending invocation id...")的捕获

这类Runtime日志属于Microsoft类别,要收集其Trace级别日志,只需将host.json中"Microsoft"的日志级别设为Trace即可,生产环境建议调回Warning或Information,避免系统日志过载。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:02:50