在我的 Rails 项目中,我注意到有时操作不会在完成后立即写入日志文件development.log
,而是在完成其他一些操作之后(或者可能只是在一段时间后,我不确定。)development.log
文件写了吗?
问问题
664 次
2 回答
4
针对 Rails 3.2 更新
Rails 的默认日志记录是缓冲的,因此日志消息不会立即写入,而是分批发生。您可以强制记录器使用以下命令刷新缓冲区:
这是旧的方式,从 3.2开始,文件系统在写入日志之前处理缓冲:
ActiveSupport::BufferedLogger#auto_flushing 已弃用。像这样在底层文件句柄上设置同步级别。或者调整你的文件系统。FS 缓存现在控制刷新。
您可以将config/environments/development.rb更改为自动刷新每条日志消息:
config.autoflush_log = true
bootstrap.rb使用它来强制同步日志(例如 f.sync = true
)。这将显着影响性能。
于 2012-10-22T20:06:31.160 回答
2
于 2012-10-22T21:40:18.487 回答