gpt4 book ai didi

ruby-on-rails-3 - Resque:异常和堆栈跟踪

转载 作者:行者123 更新时间:2023-12-02 03:56:52 26 4
gpt4 key购买 nike

我有一个 JRuby/Rails 应用程序,它包含一个用于处理 HTTP 请求的 Web 服务器、一个 MySQL 数据库和一个用于处理排队作业的 Resque worker。当我处于开发模式并且 Web 应用程序中的某些东西抛出异常时,我在浏览器中得到一个很好的跟踪,显示抛出的异常、抛出异常的行、相关数据和堆栈回溯。

然而,当异常抛出代码在 Resque worker 中执行时,我什么也得不到,即使我知道代码抛出了异常。我可以调试的唯一方法是抛出打印语句并找出在 Resque worker 抛出异常并崩溃之前调用最后一个打印语句的位置。

有没有办法让 Resque 工作人员吐出异常日志并将堆栈回溯到日志文件中(在它崩溃之前),以便我可以看到发生了什么?

编辑——(感谢 @Viren 的想法)——而且我不想在我的应用程序代码中乱扔开始/救援 block 。我将把开始/救援代码放在某个地方一次,以确保记录异常回溯,但我不知道把它放在哪里。

最佳答案

您可以将 Resque 记录器设置为使用 Rails 记录器。对于完整的堆栈跟踪,您可能希望将其设置为 DEBUG 级别,这样会打印出大量信息。你把它放在 initializers/resque.rb 中:

Resque.logger = Rails.logger
Resque.logger.level = Logger::DEBUG

还有resque-backtrace gem,虽然它有这个缺点,它会覆盖 Resque 中的后端,所以现在没有作业会进入错误队列。

关于ruby-on-rails-3 - Resque:异常和堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12200587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com