c# - 使用 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 和自定义维度吗?
解决方案
您几乎已经走在正确的道路上。使用上面共享的示例日志语句,如果您已启用内置App Insights 集成,您应该已经在 Application Insights 日志的 customDimentions 中看到 customerId、objectId、errorMessage 。这就是确切的原因,登录 .net 核心是以这种方式构建的模板。您还可以在Azure Function 结构化日志记录中找到详细信息。
但是您提到您正在通过诊断设置使用 Log Analytics 工作区,我认为这些设置尚不支持结构化日志记录(目前处于预览阶段,因此将来可能会更改)。
因此,Application Insights 将是您的最佳选择。除了 App Insights 的内置查询窗格之外,您也可以从 Log Analytics 查询应用程序见解。
推荐阅读
- c++ - winhttp 和 Visual Studio 代码 - 构建时完成 newb 和“未定义引用”问题
- python - 无法用python下载图像
- mybb - 如何确定“MyBB 遇到内部 SQL 错误,无法继续”的原因
- typescript - NestJS - 在瞬态记录器中请求范围服务
- php - ACF 转发器字段未呈现行
- jvm - 有没有办法软更改 Java 版本?
- react-native - Expo SDK40 升级 TypeError: undefined is not an object (evalating 'inspect.custom')
- javascript - 使用带有列表 ITem 的 RN FlatList 的唯一“关键”道具错误
- php - PHP HTML 联系我们表单问题
- python - 如何在 3 路合并排序中修复超出索引的错误?