检查rails中是否已存在日志文件

时间:2015-01-27 23:20:49

标签: ruby-on-rails ruby logging rspec

我希望做到以下几点:

new_logger = Logger.new('log/exceptions.log')
new_logger.level = Logger::ERROR
new_logger.error('THIS IS A NEW EXCEPTION!')

ActiveRecord::Base.logger = new_logger

但我只希望创建日志文件(如果它尚不存在)。我真的只使用File.exist?

你会如何测试? (使用rspec)如果日志文件变大,则rails(或是Web服务器)压缩文件并创建一个新文件,例如:log.zip, log_2

1 个答案:

答案 0 :(得分:4)

实际上,例如in Logger docs

file = File.open('foo.log', File::WRONLY | File::APPEND)
# To create new (and to remove old) logfile, add File::CREAT like:
# file = File.open('foo.log', File::WRONLY | File::APPEND | File::CREAT)
logger = Logger.new(file)

如果要写入的文件不存在,则会在尝试打开时自动创建。