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

Azure Function服务类日志无法写入Application Insights求助

Azure Function服务类日志无法写入Application Insights的排查方案

针对你遇到的服务类日志不显示问题,结合你的代码配置,以下是几个关键排查点和解决办法:

1. 日志类别与host.json配置不匹配

你在RestService中注入的是ILogger<IRestService>,此时日志的类别是接口的完整命名空间(FunctionApp.Services.IRestService),但你在host.json里配置的是实现类FunctionApp.Services.RestService的日志级别,导致信息级别的日志被默认过滤规则拦截。

解决办法二选一:

  • 修改host.json的日志类别,改为接口的全名:
"logLevel": {
  "FunctionApp.Services.IRestService": "Information"
}
  • 修改RestService的注入类型,改为ILogger<RestService>:
private readonly ILogger<RestService> _logger;
public RestService(ILogger<RestService> logger)
{
    _logger = logger;
}

2. 检查Application Insights采样规则

你的host.json中启用了采样(samplingSettings.isEnabled: true),如果采样率较低,信息级别的日志可能被采样丢弃,导致在Application Insights中看不到。

临时测试方案:

关闭采样验证是否能看到日志:

"applicationInsights": {
  "samplingSettings": {
    "isEnabled": false
  }
}

确认日志能正常显示后,再根据业务需求调整采样规则(比如调整采样率、添加采样排除规则)。

3. 修正日志调用的参数问题

你的LogInformation调用中,第二个参数"1212121212"没有对应的占位符,虽然不影响日志写入,但属于不规范写法,可能导致日志格式异常:

// 错误写法:无占位符但传了参数
_logger.LogInformation("************************************TEST THIS WORK************************************","1212121212");

// 修正为二选一:
// 1. 去掉多余参数
_logger.LogInformation("************************************TEST THIS WORK************************************");
// 2. 添加占位符
_logger.LogInformation("************************************TEST THIS WORK: {TraceId}************************************","1212121212");

4. 确认服务类是否被正确调用

检查函数类中是否正确注入了IRestService,并且确实执行了SampleMethod方法。如果函数逻辑中没有调用该方法,或者调用前抛出了异常,自然不会产生日志。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 17:05:26