配置Azure Application Insights捕获Business Central扩展的Severity Level 3遥测
Business Central扩展遥测配置问题解答
1. 是预期行为吗?
是的,这是Business Central的预期行为,两者配置的作用范围和日志捕获能力有明确差异:
- 仅在
app.json中配置applicationInsightsConnectionString属于扩展级遥测配置,仅能捕获扩展自身生成的Severity Level 1(跟踪级)日志,这类日志多用于开发阶段的调试跟踪。 - 在Business Central管理中心配置连接字符串属于环境级遥测配置,会启用环境层面的全量遥测采集,涵盖系统级及所有扩展的高严重级别日志(如
Severity Level 3的错误日志),这类日志包含运行时异常、关键错误等核心信息。
2. 第三方环境无法访问管理中心时的解决方案
即使无法操作第三方环境的管理中心,依然可以获取Severity Level 3的错误日志,核心方案是在扩展代码中主动调用遥测API发送错误日志,无需依赖环境级配置。
配置指导
在扩展的AL代码中,利用Telemetry代码单元的LogError方法,主动捕获并发送错误日志到你配置的Application Insights。示例代码如下:
procedure CaptureAndLogError(ErrorMsg: Text; ContextData: Dictionary of [Text, Text]) var Telemetry: Codeunit "Telemetry"; begin // 主动记录Severity Level 3的错误日志 Telemetry.LogError( 'ExtensionCriticalError', // 自定义事件ID ErrorMsg, // 错误描述信息 ContextData // 附加上下文数据,如用户ID、操作场景等 ); end;
在扩展的错误处理逻辑(如OnRun异常捕获、业务流程错误处理块)中调用该方法,就能通过app.json中配置的连接字符串,将Severity Level 3的错误日志发送到Application Insights,无需依赖管理中心的环境配置。
内容的提问来源于stack exchange,提问作者NissePisse
相关产品推荐
相关产品推荐

