代码之家  ›  专栏  ›  技术社区  ›  Amy

Rails日志记录错误:“故障保护响应期间出错:移位失败。”…是否有一个优雅的解决方案?

  •  2
  • Amy  · 技术社区  · 15 年前

    我已经在environment.rb中配置了Rails 2.3.8记录器,以便每天旋转:

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

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

    Error during failsafe response: Shifting failed.
    

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

    我过去所做的只是设置一个cron作业,以便在发生这种情况时注意到,并让乘客下车。 TXT 文件在应用程序的tmp/目录中。

    谢谢。

    2 回复  |  直到 13 年前
        1
  •  2
  •   John Topley    15 年前

    在UNIX/Linux上使用名为 轮替 执行日志文件旋转。 Slicehost have a couple of nice articles 关于如何使用它。

    对于phusion乘客部署,可以使用如下示例所示的配置。显然,适当地调整目录和旋转频率。

    /home/deploy/public_html/railsapp/shared/log/*.log {
      weekly
      missingok
      rotate 30
      compress
      delaycompress
      notifempty
      sharedscripts
      postrotate
        touch /home/deploy/public_html/railsapp/current/tmp/restart.txt
      endscript
    }
    
        2
  •  1
  •   Kamilski81    13 年前

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

    推荐文章