从昨天开始,我一直在尝试在新项目中设置Bugsnag,但似乎无法正确完成。
这个项目是用Kotlin编写的,而我正在使用Spring Boot框架。我遵循了集成指南的所有步骤(使用正确的API密钥,配置了异常处理程序等,获得了Bugsnag bean)。
因此,我一直在调试我的应用程序,并按需调用处理程序,对bugsnag.notify
的调用也有效,我看到它进入了传递步骤并成功传递了它,但是仍然没有错误报告显示在Bugsnag网络应用上。
我不知道如何调试它。
以下是一些相关的代码示例:
// Application.kt
@Configuration
open class ApplicationConfiguration(private val config: Config) {
@Bean
open fun bugsnag(): Bugsnag = Bugsnag(config.bugsnag.key).apply { setReleaseStage(config.envName) }
}
这是我的经理
// BugsnagHandlerExceptionResolver.kt
@Component
class BugsnagHandlerExceptionResolver(private val bugsnag: Bugsnag) : HandlerExceptionResolver, Ordered {
override fun getOrder(): Int = 0
override fun resolveException(request: HttpServletRequest, response: HttpServletResponse, handler: Any?, ex: Exception?): ModelAndView? {
val report = bugsnag.buildReport(ex).apply {
request.headerNames.iterator().forEach {
addToTab("Headers", it, request.getHeaders(it).toList().joinToString())
}
context = request.method + " " + request.requestURL.toString()
}
bugsnag.notify(report)
bugsnag.notify(RuntimeException("pls work"))
return null
}
}
我试图通知一个报告和一个异常,以为两者之一应该起作用...但是没有一个到达目的地。
最佳答案
好的,所以……自昨天以来我一直遇到麻烦,我决定在这里寻求帮助,因此我重构了配置(以隐藏代码中的API密钥,以便实际上可以复制/粘贴我的代码),然后猜测。我刷新了bugsnag界面,出现了8分钟前的错误!
因此,基本上,它可以自行解决。我曾经直接在代码中设置API密钥,我只将其放在本文的应用程序配置中,这似乎对我的情况有所帮助。
无论如何,它已经解决了。我不确定是否要这样做,但是如果其他人遇到麻烦,请尝试使用应用程序的配置...