我正在制作一个Rails 3应用程序,生产日志非常庞大。我可以安全地删除它并允许Rails生成另一个吗?我是否必须重新启动Rails应用程序或重新部署?我是否必须触摸production.log?
这个东西大小为300mb,我想要杀掉它。
答案 0 :(得分:1)
将gem随时添加到您的gem文件
gem "whenever", "~> 0.7.2", require: false
并创建一个随时执行的任务
示例在您的rails应用上运行wheneverize
commanad
它会在你的config目录中为你创建一个schedule.rb文件,
你可以像
every 1.day, :at => '4:30 am' do
rake "log:clear"
end
如果您使用capistrano进行部署,请将其添加到deploy.rb
set :whenever_command, "bundle exec whenever"
这将为您自动设置。
答案 1 :(得分:0)
您可以随时删除日志而无需担心应用程序。 理想情况下,您应该旋转这些日志,以防止它们变得如此之大。您可以使用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手册页以获取更多信息,尽管说明有些不言自明。
答案 2 :(得分:0)
/home/deploy/appname/current/log/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
copytruncate
}
使用了上面配置的logrotate,它运行良好。