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

Azure函数context.error日志未传入Application Insights问题排查

Azure函数context.error日志未传入Application Insights的排查与解决

首先明确:context.error理论上应将错误日志推送到Application Insights,但未生效通常是配置或运行时API使用问题,以下是具体排查和解决方向:

1. 确认Application Insights集成配置

  • 检查函数应用的配置页面,确保已添加APPLICATIONINSIGHTS_CONNECTION_STRING(推荐)或APPINSIGHTS_INSTRUMENTATIONKEY,值对应你的Application Insights资源的连接字符串/密钥。
  • 确认函数运行时版本:Node.js环境下,Azure Functions Runtime v4+需搭配Application Insights SDK for Node.js v3+,版本不兼容可能导致日志丢失。

2. 修正host.json日志级别配置

确保host.json中已正确设置日志级别,允许Error级日志被采集,示例配置:

{
  "logging": {
    "logLevel": {
      "default": "Error"
    },
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "" // 不要排除Error类型,若之前排除了需清空
      }
    }
  }
}

注意:若采样率设置过低,也可能导致部分错误日志未被采集,可临时将采样率设为100%测试:"samplingPercentage": 100

3. 更换日志API调用方式

在新版Azure Functions Node.js运行时中,官方推荐使用context.log.error()替代context.error(),后者属于旧API,可能存在兼容性问题。修改你的错误处理函数:

// 替换 context.error(error); 为
context.log.error(error);

若错误对象序列化异常,可手动构造可被正确捕获的日志内容:

context.log.error(`错误信息: ${error.message}\n堆栈追踪: ${error.stack}`);

4. 检查是否存在自定义日志过滤

确认未在Application Insights资源中设置自定义日志过滤器,也未在函数应用的日志过滤规则中排除Error级别的日志。

你的错误处理函数代码:

module.exports = function handleError(context, error) {
  context.error(error);

  let isInternalError = error.statusCode === 500 || error.code === 500 || typeof error.code !== "number";
  let status = isInternalError ? 500 : error.statusCode || error.code || 500;
  let errorMessage = error.message;
  let errorsList = [];
  
  if (error.name === "ValidationError") {
    isInternalError = false;
    status = 400;
    errorsList = Object.keys(error.errors).map(key => error.errors[key].message);
    errorMessage = "Validation Error";
  }

  return {
    status,
    jsonBody: {
      errorMessage: isInternalError ? 'Internal Server Error' : errorMessage,
      errorsList,
      errorStack: process.env.ENVIRONMENT !== "prod" ? error.stack : undefined
    }
  };
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 03:16:01