我正在使用 rufus-scheduler 来处理 Rails 3.2.x 应用程序的 cron 作业。rootworker.rb
正在由工头(实际上是这个特定服务器上的新贵)启动,因此当它启动时,它没有运行的 Rails 上下文。显然,当我尝试打电话logger
或Rails.logger
每次都会失败。
我正在使用log4r
作为默认 Rails Logger 的替代品,这非常好,但我想知道这个问题的正确解决方案是什么:
1)我是否需要在启动时为脚本提供 Rails 上下文(它现在只是在运行rake
任务,所以当工作脚本移交给 rake 任务时它最终会获得 Rails 环境,我担心之前给脚本提供 Rails 环境运行定时任务将是矫枉过正,因为启动 env 需要很长时间)?或者
2) 我是否应该log4r
像在非 Rails Ruby 脚本中那样进行设置,该脚本只是读取 Rails 应用程序正在使用的相同 log4r.yml 配置,因此参与相同的日志结构?
3)或者我没有想到的其他选择?
此外,我将不胜感激一个示例或我应该在推荐的实施中考虑的步骤。
作为参考,我遵循了“如何使用 Rails 3.0.x 配置 Log4r? ”,我认为这在与上述内容集成时会有所帮助:“在 Ruby 应用程序中正确使用 Log4r?”