Ruby Logger行为怪异,将信息记录到diff

Ruby Logger行为怪异,将信息记录到diff,ruby,logging,Ruby,Logging,我在我的项目中使用ruby logger,我有conf.rb,它类似于: require 'rubygems' # initiate the logger file $LOG = Logger.new("#{$ROOT_PATH}/log/errors.log", 'daily') $LOG.datetime_format = "%Y-%m-%d %H:%M:%S" 在《更像一个工人》中,我使用了类似worker1.rb的内容: require "#{$ROOT_PATH}/conf.

我在我的项目中使用ruby logger,我有conf.rb,它类似于:

require 'rubygems'

# initiate the logger file 
$LOG = Logger.new("#{$ROOT_PATH}/log/errors.log", 'daily')  
$LOG.datetime_format = "%Y-%m-%d %H:%M:%S"
在《更像一个工人》中,我使用了类似worker1.rb的内容:

require "#{$ROOT_PATH}/conf.rb"
$LOG.error "test"  
例如,今天我应该在error.log文件中获取所有结果,但是我在log/errors.log.20130221、log/errors.log.20130221.1和log/errors.log.20130221.2中获取结果。工人们一直在运行,所以没有重新启动它

我在Ubuntu下使用ruby 1.9.3p0

记录器#datetime_格式
引用的是日志文件(日志格式化程序)中的日期,而不是文件名格式

旋转文件的文件名硬编码到lib-

您可以重新定义方法,也可以使用rotatelogs

Logger.new(IO.popen("/usr/sbin/rotatelogs -l file_pattern period", 'a'))
出现.1、.2扩展名是因为记录器默认设置了
shift\u size
。一旦日志文件达到该值,日志将被旋转,但由于是同一日期,记录器正在添加以防止冲突
.

感谢您的帮助,无论如何,我真的不认为扩展与大小有关,而不仅仅是工人试图访问同一日志,因为根据我的观察,它与大小无关,我的主要问题不在于格式,而在于它应该将日志路由到error.log,因为该格式应该用于前一个日期