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

Check if a log file already exists in rails

我希望执行以下操作:

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(或者是网络服务器)压缩文件并创建一个新文件,例如:log.zip, log_2

实际上有一个例子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)

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