如何获取未在AppInsights和Log Analytics中记录的Logic Apps失败运行信息?
获取Logic Apps失败运行信息并关联Application Insights的方法
一、先确认诊断设置的正确性
如果AzureDiagnostics表无相关记录,大概率是诊断配置遗漏了关键日志类别:
- 进入Logic Apps资源的「诊断设置」,确保已勾选WorkflowRuntime、WorkflowAction、WorkflowTrigger等所有Logic Apps相关的日志类别
- 确认目标接收方已同时勾选Log Analytics工作区和Application Insights(若需关联AI)
二、使用Logic Apps专用日志表查询失败信息
Log Analytics中除了AzureDiagnostics,还有Logic Apps专属的日志表,信息更精准:
- LogicAppsWorkflowRuntimeLogs:记录工作流整体运行状态,可直接筛选失败记录:
LogicAppsWorkflowRuntimeLogs | where Status == "Failed" | project TimeGenerated, WorkflowName, RunId, Status, ErrorMessage, ErrorType
- LogicAppsWorkflowActionLogs:记录每个动作的执行细节,适合定位具体失败的动作:
LogicAppsWorkflowActionLogs | where Status == "Failed" | project TimeGenerated, WorkflowName, RunId, ActionName, ErrorMessage, CorrelationId
三、关联Application Insights日志
若已将Logic Apps日志发送至Application Insights,可通过RunId关联两边的日志:
- 在Application Insights的
traces表中查询对应运行的详细日志:
traces | where customDimensions.RunId == "<失败运行的RunId>" | project timestamp, message, customDimensions.ErrorDetails
- 跨表关联Logic Apps和Application Insights的日志,整合完整错误链:
LogicAppsWorkflowActionLogs | where Status == "Failed" | join kind=inner ( traces | project timestamp, RunId = customDimensions.RunId, AIErrorDetails = message ) on RunId | project TimeGenerated, WorkflowName, RunId, ActionName, LogicAppsErrorMessage = ErrorMessage, AIErrorDetails
四、手动捕获失败信息(兜底方案)
如果自动日志仍缺失,可在Logic Apps的失败分支中添加日志动作:
- 添加「Log to Application Insights」动作,将错误信息直接写入AI:
内容填写@actions('出错的动作名称').error或@result('出错的动作名称') - 也可将错误信息写入存储表/Blob,方便后续排查
五、关联Api Management日志(若涉及APIM调用)
如果Logic Apps调用了APIM,需确保APIM的诊断日志也发送至同一Log Analytics工作区,然后通过OperationId关联:
LogicAppsWorkflowActionLogs | where ActionName contains "APIM" | project RunId, OperationId = customDimensions.OperationId, LogicAppsErrorMessage | join kind=inner ApiManagementGatewayLogs on OperationId | project TimeGenerated, WorkflowName, RunId, OperationId, LogicAppsErrorMessage, APIMBackendError = backendResponse
内容的提问来源于stack exchange,提问作者VK.
相关产品推荐
相关产品推荐

