Rails开发日志文件 - 写入时间

时间:2012-10-22 19:58:21

标签: ruby-on-rails ruby-on-rails-3 logging

在我的Rails项目中,我注意到有时候动作在完成之后不会立即写入日志文件development.log,而是在完成其他一些操作之后(或者可能只是在一段时间之后,我和#39;我不确定。)究竟什么时候写development.log文件?

2 个答案:

答案 0 :(得分:4)

更新了Rails 3.2

Rails的默认日志记录是缓冲的,因此日志消息不会立即写入,而是批量发生。您可以强制记录器使用以下内容刷新缓冲区:

这是旧的方式,as of 3.2文件系统在写日志之前处理缓冲:

  

不推荐使用ActiveSupport :: BufferedLogger#auto_flushing。要么设定   像这样的底层文件句柄上的同步级别。或调整你的   文件系统。现在,FS缓存控制刷新。

您可以将 config / environments / development.rb 更改为自动刷新每条日志消息:

config.autoflush_log = true

bootstrap.rb使用它来强制同步日志(例如 f.sync = true)。这将显着影响性能。

答案 1 :(得分:2)

为什么不使用log4r?

  1. 非常快
  2. 它支持时间戳
  3. 您可以根据需要自定义输出格式。
  4. 如需使用,请参阅:https://stackoverflow.com/a/5959013/445908