gpt4 book ai didi

node.js - 使用Application Insights : TypeError: Cannot read property 'stack' of undefined跟踪自定义错误的问题

转载 作者:行者123 更新时间:2023-12-03 08:39:13 32 4
gpt4 key购买 nike

我编写了一个自定义错误类,并希望使用Azure Application Insights跟踪错误。我正在使用Node.js。当我尝试跟踪自定义错误时,出现以下错误:

TypeError: Cannot read property 'stack' of undefined
at Function.EnvelopeFactory.createExceptionData (/Users/liam/Desktop/CustomError/node_modules/applicationinsights/out/Library/EnvelopeFactory.js:145:40)
at Function.EnvelopeFactory.createEnvelope (/Users/liam/Desktop/CustomError/node_modules/applicationinsights/out/Library/EnvelopeFactory.js:32:40)
at NodeClient.TelemetryClient.track (/Users/liam/Desktop/CustomError/node_modules/applicationinsights/out/Library/TelemetryClient.js:116:44)
at NodeClient.TelemetryClient.trackException (/Users/liam/Desktop/CustomError/node_modules/applicationinsights/out/Library/TelemetryClient.js:69:14)
at Object.<anonymous> (/Users/liam/Desktop/CustomError/app.js:10:8)
at Module._compile (internal/modules/cjs/loader.js:1138:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
at Module.load (internal/modules/cjs/loader.js:986:32)
at Function.Module._load (internal/modules/cjs/loader.js:879:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
这是代码:
class CustomError extends Error {  
constructor (message) {
super(message)

Error.captureStackTrace(this, this.constructor);
this.name = this.constructor.name;
this.status = 404;
}

statusCode() {
return this.status
}
}

const appInsights = require('applicationinsights');
appInsights.setup('MY_KEY').start();
let client = appInsights.defaultClient;

const customError = require('./exceptions');
let newError = new customError('The custom error was thrown')

client.trackException(newError);
我已经基于其他在线资源对TelemetryClient对象进行了一些研究,但我认为这不是正确的方向。
我正在使用此资源作为指南: https://docs.microsoft.com/en-us/azure/azure-monitor/app/api-custom-events-metrics#trackexception

最佳答案

通过将键值对传递给trackException,其中键是异常,值是错误,我能够解决此问题:

client.trackException({exception: new customError('This is a custom error')});
完整代码:
class CustomError extends Error {  
constructor (message) {
super(message)

Error.captureStackTrace(this, this.constructor);
this.name = this.constructor.name;
this.status = 404;
}

statusCode() {
return this.status
}
}

const appInsights = require('applicationinsights');
appInsights.setup('MY_KEY').start();
let client = appInsights.defaultClient;

client.trackException({exception: new CustomError('This is a custom error')});

关于node.js - 使用Application Insights : TypeError: Cannot read property 'stack' of undefined跟踪自定义错误的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63568492/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com