【问题标题】:Changing logger chunk size in a rails (production env)更改轨道中的记录器块大小(生产环境)
【发布时间】:2013-05-27 16:20:18
【问题描述】:

生产中的 Rails 记录器以大而慢的块写入 production.log。

我怎样才能消除这种乱七八糟的写作?

谢谢

【问题讨论】:

    标签: ruby-on-rails debugging logging


    【解决方案1】:

    默认情况下,Rails 记录器会在生产环境中进行缓冲,以免 io 子系统被日志淹没。它仍应在每次请求后刷新日志(或在 1000 行之后,无论先出现什么)

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

    Rails.logger.auto_flushing = 10
    

    这会将记录器设置为在 10 个日志行后刷新。虽然您可以将其设置为 1,但在生产环境中这样做可能不是一个好主意。

    【讨论】:

    • 此代码已弃用,发现:ActiveSupport::BufferedLogger#auto_flushing is deprecated。像这样在底层文件句柄上设置同步级别。或者调整你的文件系统。 FS 缓存现在控制刷新。
    • 我还是不知道该怎么办
    • 好吧,然后调整你的文件系统。较新版本的 Rails(可能 > 3.2)只需发出 write 调用,该调用最终会写入底层文件系统。何时发生取决于内核/文件系统。
    猜你喜欢
    • 2019-07-21
    • 2012-03-05
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-15
    • 2013-01-04
    相关资源
    最近更新 更多