【问题标题】:Rails logging error: "Error during failsafe response: Shifting failed." ... is there an elegant solution to this?Rails 日志记录错误:“故障安全响应期间出错:换档失败。” ...有一个优雅的解决方案吗?
【发布时间】:2011-03-24 20:08:54
【问题描述】:

我已在 environment.rb 中将 Rails 2.3.8 记录器配置为每天轮换:

config.logger = Logger.new("#{RAILS_ROOT}/logs/#{RAILS_ENV}.log", 'daily')

每天早上我都会像往常一样:

Error during failsafe response: Shifting failed.

有没有一个体面/优雅/更好的解决方案?

我过去所做的只是设置一个 cron 作业以在发生这种情况时进行通知,并将一个Passenger restart.txt 文件放到应用程序的 tmp/ 目录中。

谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby logging system-administration passenger


    【解决方案1】:

    在 UNIX/Linux 上使用名为 logrotate 的程序来执行日志文件轮换是很常见的。 Slicehost have a couple of nice articles如何使用它。

    对于 Phusion Passenger 部署,您可以使用类似以下示例的配置。显然要酌情调整目录和轮播频率。

    /home/deploy/public_html/railsapp/shared/log/*.log { 每周 失踪的 旋转 30 压缩 延迟压缩 通知空 共享脚本 后旋转 触摸 /home/deploy/public_html/railsapp/current/tmp/restart.txt 尾注 }

    【讨论】:

    【解决方案2】:

    如果你有很多请求同时进来,是时候让 Rails 轮换日志了。如果一个流试图写入一个文件(logger.rb 代码有一行写着:@dev.stat.size)并且当文件不存在时(因为它正在被旋转),那么它会抛出一个致命的异常,并且基本上服务器停止响应请求(它不一定会关闭,但会在请求时爆炸。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多