为什么我在日志工作区中看不到 Azure 函数信息日志

问题描述 投票:0回答:1

我有一个 Azure 功能

  • 我在创建Function App时创建了应用程序洞察资源
  • Azure 函数默认已注册 Insights 遥测

Azure 门户中的环境变量(默认) enter image description here

Program.cs(默认)

var host = new HostBuilder()
    .ConfigureFunctionsWebApplication()
    .ConfigureServices(services =>
    {
        services.AddApplicationInsightsTelemetryWorkerService();
        services.ConfigureFunctionsApplicationInsights();
    })
    .Build();

Azure Portal 控制台中的功能日志 enter image description here

日志工作区中的功能日志

enter image description here

问题是,为什么我在

Azure Portal Log Console

中看到以下日志
 _logger.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");

但不在

Logs workspace

enter image description here

有什么想法吗?

更新1:

我验证了应用程序洞察已连接到函数应用程序 enter image description here

日志级别设置为信息: 主机.json

{
  "version": "2.0",
  "logging": {
    "LogLevel": {
      "Default": "Information"
    },
    "applicationInsights": {
      "LogLevel": {
        "Default": "Information"
      },
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request;Exception"
      },
      "enableLiveMetricsFilters": true
    }
  }
}

更新2:

_logger.LogInformation("[Http Triggered Function] Information.");
_logger.LogWarning("[Http Triggered Function] Warning.");
_logger.LogError("[Http Triggered Function] Error.");

正确记录警告和错误 enter image description here

更新3

似乎根本没有考虑 host.json 配置。如果我只想记录错误

{
  "version": "2.0",
  "logging": {
    "LogLevel": {
      "Default": "Error",
      "Function": "Error",
      "Function.Function1": "Error",
      "Function.ChangeTrackingFunction": "Error"
    },
    "applicationInsights": {
      "samplingSettings": {
        "isEnabled": true,
        "excludedTypes": "Request"
      }
    }
  }
}

警告仍记录到控制台和日志工作区中。

azure-functions azure-application-insights azure-log-analytics-workspace
1个回答
1
投票

在 Azure 函数的日志工作区中,如果缺少自定义日志,请检查这些最可能的罪魁祸首:对此有一些可能的解释:

日志记录配置:确保在您使用的 Azure Function App 中配置日志记录。使用 Azure 门户设置验证是否已设置 Application Insights。

日志级别:确保您的函数代码以正确的日志级别调用日志。例如,如果您选择 Node.js,则应在信息级别或更高级别使用 console.log()。在 Python 中,根据需要使用 print() 语句。

诊断设置:了解您是否已打开 Function App 的诊断设置。如果没有这些设置,日志不太可能传输到 Log Analytics 工作区。它们确实可以在 Azure 门户中的 Function App 的“Monitoring”选项卡下激活。

Application Insights 集成:您需要确认您的 Function App 已与 Application Insights 集成。缺少或错误的检测密钥或连接字符串意味着日志可能无法传输到 Application Insights,因此不会显示在日志工作区中。

© www.soinside.com 2019 - 2024. All rights reserved.