我想在angularJS应用程序中设置JS异常日志记录模块,为此我使用 $ exceptionHandler 。
我使用以下代码记录应用程序错误:
app.config(function($provide) {
$provide.decorator("$exceptionHandler", function($delegate) {
return function(exception, cause) {
$delegate(exception, cause);
// alert(exception.message);
console.log(JSON.stringify(exception.message += ' (caused by "' + cause + '")'));
};
});
});
但是在这里,我只收到消息,但我想要所有与异常相关的细节,如errorMsg,url,行号等。
如何使用上面的代码获取所有这些细节?
答案 0 :(得分:5)
事实证明,标准化的error object的唯一部分是消息。 lineNumber和fileName都会在不同的浏览器版本中产生不一致的结果。
获取尽可能多的关于异常的详细信息的最常用方法是:
app.config(function($provide) {
$provide.decorator("$exceptionHandler", function($delegate) {
return function(exception, cause) {
$delegate(exception, cause);
var formatted = '';
var properties = '';
formatted += 'Exception: "' + exception.toString() + '"\n';
formatted += 'Caused by: ' + cause + '\n';
properties += (exception.message) ? 'Message: ' + exception.message + '\n' : ''
properties += (exception.fileName) ? 'File Name: ' + exception.fileName + '\n' : ''
properties += (exception.lineNumber) ? 'Line Number: ' + exception.lineNumber + '\n' : ''
properties += (exception.stack) ? 'Stack Trace: ' + exception.stack + '\n' : ''
if (properties) {
formatted += properties;
}
console.log(formatted);
};
});
});