【问题标题】:Check if a log file already exists in rails检查rails中是否已经存在日志文件
【发布时间】:2015-03-26 17:46:10
【问题描述】:

我希望执行以下操作:

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

【问题讨论】:

  • ...否则您想将新的日志条目附加到现有内容,对吗?
  • 是的,如果存在,则追加,否则创建。我对 File.exist 的担忧?是它不知道 Rails 项目的设置方式,所以我不知道如何获取那里的所有信息

标签: ruby-on-rails ruby logging rspec


【解决方案1】:

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

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

【讨论】:

  • 这里我认为 Logger 出于某种原因脱离了轨道 >.>
  • 是的,我很惊讶地发现它也在核心中。 pry 使得在文档中搜索给定对象变得异常简单:show-doc Logger,完成。
猜你喜欢
  • 2013-10-28
  • 1970-01-01
  • 2021-11-28
  • 1970-01-01
  • 2023-01-25
  • 2014-10-06
  • 2013-06-27
  • 2020-06-14
  • 1970-01-01
相关资源
最近更新 更多