【问题标题】:Joining separate log to main Rails development log将单独的日志加入到主要的 Rails 开发日志中
【发布时间】:2013-06-04 04:39:37
【问题描述】:

这是我在其他地方看到的several times 的question 的反面,其中有人想了解如何创建另一个独立于主要开发日志的Rails 日志。出于某种原因,我的 Rails 应用程序将我的 DelayedJob gem 的活动记录到单独的日志 (delayed_job.log),但我希望它记录到主 development.log 文件。如果这可能相关,我也在使用 Workless gem 和 NewRelic(尽管我通过删除 NewRelic 对此进行了试验,但问题仍然存在)。

我不清楚这是怎么发生的。但是,我之前在日志中看到 SQL 插入和删除时遇到了一些麻烦,另一个用户好心 suggested 我在初始化文件中使用了以下内容:

if defined?(Rails) && !Rails.env.nil?
  logger = Logger.new(STDOUT)
  ActiveRecord::Base.logger = logger
  ActiveResource::Base.logger = logger
end

执行此操作后,我看到了 SQL 语句,但在主开发日志中不再看到 DelayedJob 信息。

所以我的问题是:如何确保 DelayedJob 活动记录到主开发日志中?我不介意它是否也记录到单独的日志中,但重要的是我可以在我的 Mac 控制台中看到它的活动。

如果您想从我的应用中获取更多代码,请告诉我 - 我很乐意提供。非常感谢 Rails 新手。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 logging development-environment delayed-job


    【解决方案1】:

    尝试将以下行添加到 config/initializers/delayed_job_config.rb

    Delayed::Worker.logger = Logger.new(STDOUT)
    

    【讨论】:

      【解决方案2】:

      我终于让它工作了。感谢 Seamus Abshere 对问题here 的回答。我将他在下面发布的内容放在初始化文件中。这让 delay_job 登录到我的 development.rb 文件(huzzah!)。

      但是,delayed_job 仍然没有登录到我的控制台(原因我仍然不明白)。我通过打开一个新的控制台选项卡并输入tail -f log/development.log 解决了这个问题。

      不过,与 Seamus 所写的不同,auto-flushing=true 在 Rails 4 中已被弃用,我的 Heroku 应用程序崩溃了。我通过从我的初始化程序文件中删除它并将其作为config.autoflush_log = true 放置在我的environments/development.rb 文件中解决了这个问题。但是,我发现这两种类型的冲洗都不需要完成这项工作。

      这是他的代码(没有自动刷新):

      file_handle = File.open("log/#{Rails.env}_delayed_jobs.log", (File::WRONLY | File::APPEND | File::CREAT))
      # Be paranoid about syncing
      file_handle.sync = true
      # Hack the existing Rails.logger object to use our new file handle
      Rails.logger.instance_variable_set :@log, file_handle
      # Calls to Rails.logger go to the same object as Delayed::Worker.logger
      Delayed::Worker.logger = Rails.logger
      

      如果上述代码不起作用,请尝试将Rails.logger 替换为RAILS_DEFAULT_LOGGER。

      【讨论】:

        猜你喜欢
        • 2011-06-22
        • 1970-01-01
        • 1970-01-01
        • 2017-02-28
        • 1970-01-01
        • 2019-09-11
        • 1970-01-01
        • 1970-01-01
        • 2019-06-20
        相关资源
        最近更新 更多