【问题标题】:Can I have Rails 3 save production logs for 90 days?我可以让 Rails 3 将生产日志保存 90 天吗?
【发布时间】:2012-09-07 01:22:59
【问题描述】:

Rails 3 似乎会在某个未知时间段后自动截断生产日志。我希望能够保存过去 90 天的生产日志,以便能够审核我的应用程序的行为。根据this answer 的说法,旧的Rails Logger 至少支持将日志分成不同的日期,如果不自动删除旧的,但Rails 现在使用不支持这些选项的BufferedLogger

无论哪种方式,看起来我可能不得不求助于配置 Unix 的 logrotate 来获得我想要的日志保留策略。这对我来说很好,但我还必须防止 Rails 自动截断日志,这样我就不会丢失任何东西,我不知道该怎么做。

是否有另一种与 Rails(可能是 gem)一起使用的日志记录工具,可以在一个地方处理所有这些?如果没有,我如何防止BufferedLogger 截断日志,以免它进入logrotate 的方式?

【问题讨论】:

    标签: logging ruby-on-rails-3.2 production-environment log-rotation


    【解决方案1】:

    AFAIK,根本没有截断。 BufferedLogger 源不显示日志文件的任何限制。

    http://engineering.freeagent.com/2011/10/12/understanding-the-rails-logger/ 是了解一些内部结构的好指南。但似乎您需要自己进行轮换。

    【讨论】:

    • 实际上,当我在 production.log 上使用less 时,它报告它似乎是一个二进制文件。文件的尾部只是一些最近的请求,头部充满了大量的^@...那到底是什么?我以前从没见过……
    • 我接受了你的回答。原来我的问题与我从以前的 Rails 版本中留下的 BufferedLogger 上的猴子补丁有关。
    猜你喜欢
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 2013-12-16
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 2021-07-19
    相关资源
    最近更新 更多