【问题标题】:Raven Sentry not working in latest Angular 4Raven Sentry 不能在最新的 Angular 4 中工作
【发布时间】:2023-03-03 00:30:01
【问题描述】:

我正在使用 Angular 4 创建一个应用程序,并且我正在使用 Sentry 作为远程日志记录平台。

问题是今天我决定将我的包更新到最新版本,现在 Sentry 正在使我的整个应用程序崩溃。

这是我的代码:

Raven.config(environment.ravenUrl).install();

export class RavenErrorHandler implements ErrorHandler {
  handleError(err: any): void {
    Raven.captureException(err);
  }
}

@NgModule({
  declarations: [
  // My components
  ],
  imports: [
    BrowserModule,
    ReactiveFormsModule,
    HttpModule,
    AppRoutingModule,
    NgbModule.forRoot(),
    StoreModule.forRoot({
      orders: ordersReducer,
      login: loginReducer,
      routerReducer: routerReducer
    }),
    StoreRouterConnectingModule,
    EffectsModule.forRoot([
      OrderEffect,
      LoginEffect
    ]),
    !environment.production ? StoreDevtoolsModule.instrument() : [],
    PerfectScrollbarModule.forRoot(PERFECT_SCROLLBAR_CONFIG)
  ],
  providers: [
    { provide: ErrorHandler, useClass: RavenErrorHandler }
  ],
  bootstrap: [AppComponent],
})
export class AppModule { }

如您所见,我只是按照Sentry documentation 了解如何在 Angular 上安装它。

我已经检查了一些代码,我看到 Raven.config(environment.ravenUrl).install(); 如果我删除这个调用,错误就会消失,但我不想这样做。

在谷歌浏览器上,错误是这样的:

zone.js:195 Uncaught RangeError: Maximum call stack size exceeded
    at http://localhost:4200/polyfills.bundle.js:5303:31
    at XMLHttpRequest.proto.(anonymous function) (http://localhost:4200/polyfills.bundle.js:3819:24)
    at XMLHttpRequest.open (http://localhost:4200/vendor.bundle.js:17409:37)
    at Raven._makeRequest (http://localhost:4200/vendor.bundle.js:18090:17)
    at Raven._sendProcessedPayload (http://localhost:4200/vendor.bundle.js:18014:56)
    at Raven._send (http://localhost:4200/vendor.bundle.js:17956:22)
    at Raven._processException (http://localhost:4200/vendor.bundle.js:17730:14)
    at Raven._handleStackInfo (http://localhost:4200/vendor.bundle.js:17636:14)
    at Raven.captureException (http://localhost:4200/vendor.bundle.js:16774:18)
    at XMLHttpRequest.wrapped (http://localhost:4200/vendor.bundle.js:16710:22)
    at ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:4200/polyfills.bundle.js:2970:31)
    at Zone.webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runTask (http://localhost:4200/polyfills.bundle.js:2737:47)
    at ZoneTask.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneTask.invokeTask [as invoke] (http://localhost:4200/polyfills.bundle.js:3044:34)
    at invokeTask (http://localhost:4200/polyfills.bundle.js:3972:14)
    at XMLHttpRequest.globalZoneAwareCallback (http://localhost:4200/polyfills.bundle.js:3990:17)
    at http://localhost:4200/polyfills.bundle.js:5303:31
    at XMLHttpRequest.proto.(anonymous function) (http://localhost:4200/polyfills.bundle.js:3819:24)
    at XMLHttpRequest.open (http://localhost:4200/vendor.bundle.js:17409:37)
    at Raven._makeRequest (http://localhost:4200/vendor.bundle.js:18090:17)
    at Raven._sendProcessedPayload (http://localhost:4200/vendor.bundle.js:18014:56)
    at Raven._send (http://localhost:4200/vendor.bundle.js:17956:22)
    at Raven._processException (http://localhost:4200/vendor.bundle.js:17730:14)
    at Raven._handleStackInfo (http://localhost:4200/vendor.bundle.js:17636:14)
    at Raven.captureException (http://localhost:4200/vendor.bundle.js:16774:18)
    at XMLHttpRequest.wrapped (http://localhost:4200/vendor.bundle.js:16710:22)
    at ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:4200/polyfills.bundle.js:2970:31)
    at Zone.webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runTask (http://localhost:4200/polyfills.bundle.js:2737:47)
    at ZoneTask.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneTask.invokeTask [as invoke] (http://localhost:4200/polyfills.bundle.js:3044:34)
    at invokeTask (http://localhost:4200/polyfills.bundle.js:3972:14)
    at XMLHttpRequest.globalZoneAwareCallback (http://localhost:4200/polyfills.bundle.js:3990:17)
    at http://localhost:4200/polyfills.bundle.js:5303:31
    at XMLHttpRequest.proto.(anonymous function) (http://localhost:4200/polyfills.bundle.js:3819:24)
    at XMLHttpRequest.open (http://localhost:4200/vendor.bundle.js:17409:37)
    at Raven._makeRequest (http://localhost:4200/vendor.bundle.js:18090:17)
    at Raven._sendProcessedPayload (http://localhost:4200/vendor.bundle.js:18014:56)
    at Raven._send (http://localhost:4200/vendor.bundle.js:17956:22)
    at Raven._processException (http://localhost:4200/vendor.bundle.js:17730:14)
    at Raven._handleStackInfo (http://localhost:4200/vendor.bundle.js:17636:14)
    at Raven.captureException (http://localhost:4200/vendor.bundle.js:16774:18)
    at XMLHttpRequest.wrapped (http://localhost:4200/vendor.bundle.js:16710:22)
    at ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask (http://localhost:4200/polyfills.bundle.js:2970:31)
    at Zone.webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runTask (http://localhost:4200/polyfills.bundle.js:2737:47)
    at ZoneTask.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneTask.invokeTask [as invoke] (http://localhost:4200/polyfills.bundle.js:3044:34)
    at invokeTask (http://localhost:4200/polyfills.bundle.js:3972:14)
    at XMLHttpRequest.globalZoneAwareCallback (http://localhost:4200/polyfills.bundle.js:3990:17)
    at http://localhost:4200/polyfills.bundle.js:5303:31
    at XMLHttpRequest.proto.(anonymous function) (http://localhost:4200/polyfills.bundle.js:3819:24)
    at XMLHttpRequest.open (http://localhost:4200/vendor.bundle.js:17409:37)
    at Raven._makeRequest (http://localhost:4200/vendor.bundle.js:18090:17)
    at Raven._sendProcessedPayload (http://localhost:4200/vendor.bundle.js:18014:56)

在 Firefox 上,我只是收到一条错误消息,提示我已达到递归的最大限制。

这个错误一直在无限循环中发生,所以我可以在一秒钟内得到数百个。

有其他人经历过吗?请注意,我使用的是 Angular 4.4.2 和最新版本的 Angular CLI (1.4.2)。

更新

我还在 Chrome 上发现了这个错误,该错误在超出最大调用堆栈大小错误之前发生了几次:

zone.js:195 Uncaught <failed to convert exception to string>
webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runTask  @   zone.js:195
webpackJsonp.../../../../zone.js/dist/zone.js.ZoneTask.invokeTask   @   zone.js:499
invokeTask  @   zone.js:1427
globalZoneAwareCallback @   zone.js:1445
(anonymous) @   zone.js:2758
proto.(anonymous function)  @   zone.js:1274
(anonymous) @   raven.js:1023
_makeRequest    @   raven.js:1704
_sendProcessedPayload   @   raven.js:1628
_send   @   raven.js:1570
_processException   @   raven.js:1344
_handleStackInfo    @   raven.js:1250
captureException    @   raven.js:388
wrapped @   raven.js:324
webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask   @   zone.js:425
webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runTask  @   zone.js:192
webpackJsonp.../../../../zone.js/dist/zone.js.ZoneTask.invokeTask   @   zone.js:499
invokeTask  @   zone.js:1427
globalZoneAwareCallback @   zone.js:1445
(anonymous) @   zone.js:2758
proto.(anonymous function)  @   zone.js:1274
(anonymous) @   raven.js:1023
_makeRequest    @   raven.js:1704
_sendProcessedPayload   @   raven.js:1628
_send   @   raven.js:1570
_processException   @   raven.js:1344
_handleStackInfo    @   raven.js:1250
captureException    @   raven.js:388
wrapped @   raven.js:324
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075
wrapped @   raven.js:321
wrapFn  @   zone.js:1075 

【问题讨论】:

  • 尝试将控制台日志添加到handleError 方法中,看看调用了多少次以及哪个错误。还要确保 console.log(environment.ravenUrl) 已定义并且格式如下:https://&lt;key&gt;@sentry.io/&lt;project&gt;
  • 我遇到了这个问题。我很确定这是 zone.js 0.8.17 的问题,我现在将它设置为 0.8.16,上次我检查它是否已修补并准备好下一个版本。
  • @Felipe 一个小建议:不要通过串联调试对象(请参阅err: any)。更好:console.log('ERROR:', err);
  • 嗨@hdk,我将我的zone.js 包降级到0.8.16,现在一切正常,所以我想我现在会保持这个版本,希望没有其他副作用角。感谢您的帮助!
  • @num8er 感谢您的提示!我会记住这一点。

标签: javascript angular sentry raven


【解决方案1】:

这是 Zone.js 方面的问题,幸好已经解决(仍有待发布),请在此处阅读详细信息https://github.com/getsentry/raven-js/issues/1016#issuecomment-328494778

【讨论】:

    猜你喜欢
    • 2018-01-11
    • 1970-01-01
    • 2019-07-16
    • 2021-10-22
    • 2018-05-22
    • 2018-03-18
    • 2017-03-13
    • 1970-01-01
    • 2015-12-07
    相关资源
    最近更新 更多