2013-05-27 134 views

回答

0

默认情况下,Rails的记录器做缓冲的生产不会打击原木的IO子系统。它应该仍然刷新每个请求后的日志后(或1000线,无论是第一位的)

您可以通过在初始化设置auto_flushing设置来控制此缓冲区:

Rails.logger.auto_flushing = 10 

这将记录器设置为在10个日志行后冲洗。虽然您可以将其设置为1,但在生产中这样做可能不是一个非常好的主意。

+0

此代码已弃用,发现此错误消息:ActiveSupport :: BufferedLogger#auto_flushing已弃用。可以像这样在底层文件句柄上设置同步级别。或者调整你的文件系统。 FS缓存现在控制着冲洗。 – kambi

+0

我还是不知道该怎么办 – kambi

+0

好吧,然后调整你的文件系统。较新版本的Rails(可能> 3.2)只是发出一个'write'调用,最终写入底层文件系统。发生这种情况取决于内核/文件系统。 –