首页 > 解决方案 > 使用 Azure Log Analytics 在 Azure Function v3 中进行结构化日志记录

问题描述

我正在尝试通过像这样登录我的 Azure 函数来使用结构化日志记录:

log.LogError("Failed to get object. ({customerId}, {objectId}, {errorMessage})", request.CustomerId,
                    request.ObjectId, errorMessage);

我的 Azure 函数通过诊断设置插入到 Log Analytics 工作区。

有没有办法从 Message 中提取 customerId、objectId 和 errorMessage ?

例如,我想创建一个仪表板,显示每个 customerId 的错误数。

我试图“提取字段”功能无济于事。我需要使用 Application Insights 和自定义维度吗?

标签: c#azureazure-functionsazure-log-analyticsstructured-logging

解决方案


您几乎已经走在正确的道路上。使用上面共享的示例日志语句,如果您已启用内置App Insights 集成,您应该已经在 Application Insights 日志的 customDimentions 中看到 customerId、objectId、errorMessage 。这就是确切的原因,登录 .net 核心是以这种方式构建的模板。您还可以在Azure Function 结构化日志记录中找到详细信息。 在此处输入图像描述

但是您提到您正在通过诊断设置使用 Log Analytics 工作区,我认为这些设置尚不支持结构化日志记录(目前处于预览阶段,因此将来可能会更改)。 在此处输入图像描述

因此,Application Insights 将是您的最佳选择。除了 App Insights 的内置查询窗格之外,您也可以从 Log Analytics 查询应用程序见解。


推荐阅读