Logger::ShiftingError的解决方法

本文介绍了一种在Rails应用中通过设置环境变量来区分应用程序日志和Cronjob日志的方法,解决了多个进程同时操作单一日志文件导致的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

这样就避免了多个进程去Shifting同一个Logger文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值