【问题标题】:Logging issues with ResqueResque 的日志记录问题
【发布时间】:2011-09-24 08:00:04
【问题描述】:

我已将 Resque 添加到我的 Rails 3 项目中。我创建了一个从/向数据库读取/写入一些东西的工作。

问题是我不再在终端中看到 SQL 查询日志,例如 "Post Load (0.5ms) SELECT "posts".* FROM "posts""。我也没有看到我设置的任何 Rails.logger 消息。

当我再次发出请求(简单刷新)时,记录器消息和 SQL 查询日志突然出现。

任何想法可能会发生什么?谢谢

【问题讨论】:

    标签: ruby-on-rails-3 resque


    【解决方案1】:

    Rails 不会立即写入日志文件,它会在刷新文件之前等待一定数量的行经过。您可以通过将其添加到您的 development.rbapplication.rb 文件中来告诉 Rails 始终刷新日志...

    config.logger.auto_flushing = true
    

    只在开发中这样做,永远不要在生产中设置它,因为它只会杀死你的 I/O。

    您也可以根据需要...

    Rails.logger.flush
    

    API 文档在这里...

    http://api.rubyonrails.org/classes/ActiveSupport/BufferedLogger.html#method-i-auto_flushing-3D

    【讨论】:

    • ActiveSupport::BufferedLogger#auto_flushing 现在在 Rails 3.2 上已弃用。说明是在底层文件句柄上设置同步级别,或者调整文件系统。 FS 缓存现在控制刷新。 file = File.open(‘foo.log’, ‘w’) file.sync = true ActiveSupport::BufferedLogger.new 文件
    • 格式化在这方面搞砸了,你可以在“弃用”部分下的文档中更好地看到这一点 - github.com/lifo/docrails/blob/master/railties/guides/source/…
    • @Jimbo - 该弃用消息的问题是我不知道“在底层文件句柄上设置同步级别”是什么意思。
    • @GrantBirchmeier - 哈哈,我依稀记得写过这篇文章,所以不幸的是我也不太确定(链接已损坏......:/)。我想我指的是这个(添加分号来区分行) - file = File.open(‘foo.log’, ‘w’); file.sync = true; ActiveSupport::BufferedLogger.new file
    • 这里是指向Ruby on Rails 3.2 Release Notes 的正确链接,上面写着:“ActiveSupport::BufferedLogger#auto_flushing 已弃用。像这样在底层文件句柄上设置同步级别。或者调整你的文件系统。FS 缓存是现在是什么控制冲洗。”
    【解决方案2】:

    我们在其中一个项目中遇到了同样的问题。此外,我们也希望将所有 Resque 消息记录到单独的日志文件中。

    在博文Enable immediate log messages of resque workers 中,可以找到一个代码示例,可以立即将日志记录到单独的文件中。

    【讨论】:

      【解决方案3】:

      Resque 不会在生产模式下刷新日志(除非您的工作生成超过 1000 行日志)。

      您必须为生成的每一行日志刷新。我只会使用文件 lib/tasks/resque.rake 配置 resque :

      task "resque:setup" => :environment do
        Resque.before_first_fork = Proc.new { Rails.logger.auto_flushing = 1 }
      end
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-08
        • 2012-10-02
        • 2014-10-20
        相关资源
        最近更新 更多