LocalVariables
将局部变量添加到异常帧中。(默认启用)
此集成仅在 Node.js 运行时中工作。
Import name: Sentry.localVariablesIntegration
此集成默认启用。如果您想修改默认集成,请阅读此文档。
此集成捕获局部变量并将其添加到异常帧中。要通过集成启用捕获局部变量,请在 SDK 配置中将 includeLocalVariable
设置为 true
。
Sentry.init({
includeLocalVariables: true,
});
局部变量集成仅捕获应用程序代码中的局部变量(in_app = true
)。来自 node_modules
的堆栈帧不会附加局部变量。
ESM 存在的问题
由于一个 未解决的 Node.js 问题,我们目前无法在使用 JavaScript 模块(ESM)时捕获未处理错误的局部变量。
要解决此问题,请将相关代码包装在 try-catch 块中,并使用 captureException
捕获错误,以便 Sentry 可以捕获局部变量。
try {
// Your code here
} catch (error) {
Sentry.captureException(error);
}
混淆的变量
目前,Sentry 无法取消混淆附加到异常帧上的局部变量名称。有一个 活跃的提案 旨在为 sourcemaps 规范添加此功能。
与调试器的不兼容性
将 includeLocalVariables
设置为 true
可能会干扰附加到进程的其他调试器会话。 该集成通过在抛出异常时短暂暂停执行来收集作用域中的变量,然后立即恢复执行。 因此,当此集成启用时,您可能会发现断点被跳过。
建议在打算使用其他调试器会话时将 includeLocalVariables
设置为 false
。
Type: boolean
默认值为 true
。如果启用,局部变量将被捕获到已捕获和未捕获的异常中。
- 当设置为
false
时,只有未捕获的异常会包含局部变量。 - 当设置为
true
时,已捕获和未捕获的异常都会包含局部变量。
为所有异常捕获局部变量可能会很昂贵,因为调试器会在每次抛出异常时暂停以收集局部变量。
为了减少此功能对应用程序性能或吞吐量的影响,该功能受到速率限制。一旦达到速率限制,局部变量将仅在未捕获的异常中捕获,直到超时。
Type: number
每秒捕获局部变量的最大异常数量,在触发速率限制之前。