Ruby on Rails 中文 Wiki
Logger::Shifting Error的解决方法

原文:http://hideto.javaeye.com/blog/175394

cron job如果加载rails环境来使用Logger,这样就有多个进程操作Logger,在Logger做Shifting时会有异常,比较取巧的解决方法就是在environment.rb里加一个常量判断:

if !$CRON_JOB_STATUS   
  $LOG = Logger.new(File.join(RAILS_ROOT, '/log/rails.log'),'daily')   
else   
  $LOG = Logger.new(File.join(RAILS_ROOT, '/log/cronjob.log'),'daily')   
end   

然后在cron job里也加上一行常量定义:

$CRON_JOB_STATUS = true   
require File.dirname(__FILE__)+'/config/environment'   
XXX.do_xxx