首页 > 解决方案 > Angular获取所有控制台错误

问题描述

我正在尝试捕获我的 Angular 应用程序的所有控制台错误,不仅是 http 响应错误,还有那些在应用程序中生成的错误。我的意思是,所有控制台错误,像这样

在此处输入图像描述

或者像这样

在此处输入图像描述

或者像这样

在此处输入图像描述

我需要的是,当我捕捉到一些此类错误(应用程序错误和 http 错误)时,我将其放入数据库的另一个服务中以存储问题并进行一些统计。

我进行了研究,并遇到了以下解决方案:

一、angular解决方案---> https://angular.io/api/core/ErrorHandler

这也回答了--->如何在Angular应用程序中获取所有控制台错误消息

this ----> Angular 错误处理和日志记录 - 调用 GlobalErrorHandler 的 handleError

这----> https://www.concretepage.com/angular/angular-custom-error-handler

但似乎没有一个工作(甚至没有http响应)

我正在尝试集中执行此操作,我的意思是,一个可以捕获所有错误的服务,无论发生错误的模块或组件如何,然后发送到我的其他服务并将错误存储在我的数据库中......这可能吗?怎么可能?

太感谢了!

标签: angulartypescripterror-handlingconsole-applicationangular-errorhandler

解决方案


猴子修补console.error方法肯定会帮助您捕获所有控制台错误。

console.error = (originLogFn => function () {
  // do smth with the error

  originLogFn.apply(this, arguments);
})(console.error);

还要注意,在 Angular 初始化之前可能会发生错误,并且它不会被任何 Angular 内置服务处理console.error。在这种情况下,您可以简单地使用:

window.onerror = (err) => {
  // do smth with the error
}

推荐阅读