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