生产中的大型日志文件

时间:2013-02-07 21:24:34

标签: ruby-on-rails-3 logging

我正在制作一个Rails 3应用程序,生产日志非常庞大。我可以安全地删除它并允许Rails生成另一个吗?我是否必须重新启动Rails应用程序或重新部署?我是否必须触摸production.log?

这个东西大小为300mb,我想要杀掉它。

3 个答案:

答案 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,它运行良好。