首页 > 解决方案 > 使用 Sentry 时如何将 Java Stack 跟踪打印到控制台

问题描述

我正在使用 Sentry 在我正在构建的应用程序中记录我的 Java 异常。

Sentry 对于生产问题非常棒,但是当我只是在开发中搞乱时,我希望仍然能够将堆栈跟踪输出到控制台。

但是,一旦Sentry.init(...)运行异常似乎被抑制并且仅在 Sentry 网站上可用。

我应该设置什么选项Sentry.init(...)以继续拥有控制台堆栈跟踪以进行开发?

标签: javaexceptionloggingconsolesentry

解决方案


我找到了两种解决方法。两者都可以在Sentry.init. 我希望如果分享我的Kotlin片段很好,它不应该有很大的不同Java

如果您可以不将未捕获的异常发送到 Sentry,您可以禁用UncaughtExceptionHandler

if (environment == "DEVELOPMENT") {
  options.enableUncaughtExceptionHandler = false
}

否则,如果您仍然希望在 Sentry 中出现该异常,您可以setBeforeSend先将其打印到控制台:

options.setBeforeSend { event, hint ->
  if (environment == "LOCAL") {
    System.err.println(event.throwable?.printStackTrace())
  }
  return@setBeforeSend event
}

推荐阅读