原文: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