我有一个 JRuby/Rails 应用程序,它包含一个用于处理 HTTP 请求的 Web 服务器、一个 MySQL 数据库和一个用于处理排队作业的 Resque 工作程序。当我处于开发模式并且 Web 应用程序中的某些内容引发异常时,我会在浏览器中获得很好的跟踪,显示引发的异常、引发异常的行、相关数据和堆栈回溯。
然而,当抛出异常的代码在 Resque 工作者中执行时,我什么也得不到,即使我知道代码抛出了异常。我可以调试的唯一方法是抛出打印语句并找出在 Resque 工作人员抛出异常并崩溃之前调用最后一个打印语句的位置。
有没有办法让 Resque 工作人员吐出异常日志并将堆栈回溯到日志文件中(在它崩溃之前),这样我就可以看到发生了什么?
编辑 - (感谢@Viren 的想法) - 我不想用开始/救援块乱扔我的应用程序代码。我将把开始/救援代码放在某个地方,以确保记录异常回溯,但我不知道把它放在哪里。