我在生产中有一个Rails 3应用程序,生产日志非常庞大。我可以安全地删除它并允许Rails生成另一个?我必须重新启动Rails应用程序还是重新部署?我需要触摸production.log吗?生产中的大日志文件
这件事是300MB的大小,我想杀了它。
我在生产中有一个Rails 3应用程序,生产日志非常庞大。我可以安全地删除它并允许Rails生成另一个?我必须重新启动Rails应用程序还是重新部署?我需要触摸production.log吗?生产中的大日志文件
这件事是300MB的大小,我想杀了它。
/home/deploy/appname/current/log/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
copytruncate
}
与上面的配置使用logrotate,它的工作很好。
的宝石时添加到您的宝石文件
gem "whenever", "~> 0.7.2", require: false
,并创建一个每当任务来完成
例如在你的轨道上运行wheneverize
commanad应用 它会为你创建一个schedule.rb文件在你的配置目录, ,你可以在任务像
every 1.day, :at => '4:30 am' do
rake "log:clear"
end
添加到它,如果你是全光照g capistrano将其部署,将其添加到您的deploy.rb中
set :whenever_command, "bundle exec whenever"
这将自动设置为您随时设置。
您可以随时删除日志而无需担心应用程序。 理想情况下,您应该旋转这些日志以防止它们变得如此之大。你可以使用logrotate来做到这一点。 Ubuntu的,它会是这样的(从this question拍摄):
/path/to/rails.example.com/tmp/log/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 640 root adm
copytruncate
}
Here是获取更多信息logrotate的手册页,虽然说明是有点不言自明的。