可以使用nginx乘客logrotate rails应用程序而无需重启?

时间:2010-11-18 03:41:49

标签: ruby-on-rails passenger logrotate

可以在不重启nginx的情况下进行logrotate(只需将USR1信号发送到nginx即可完成工作)。我想我的rails应用程序(nginx乘客)是可能的。仅仅为了进行logrotate而重启我的rails应用程序是不值得的。

2 个答案:

答案 0 :(得分:28)

logrotate配置非常简单,

/path/to/rails_apps/*/shared/log/*.log {
  daily
  missingok
  rotate 30
  compress
  delaycompress
  copytruncate
}

copytruncate基本上将内容复制到新文件并截断​​旧文件。这消除了重启的需要。

答案 1 :(得分:3)

如果您正在谈论rails应用程序日志轮换,您可以通过添加

来实现
 config.logger = Logger.new(config.log_path, 10, 1024**2)

在您的环境文件中。第二个参数是您要保留的.log文件的数量,第三个参数是文件在旋转之前允许达到的大小(以字节为单位)。此配置表示10兆字节的文件。可能不像logrotate那样可配置(不支持压缩等),但它允许您将所有日志文件保存在应用程序中。这通常对我有用。

如果想通过nginx坚持日志轮换,也found this