2013-02-07 56 views
0

我在生产中有一个Rails 3应用程序,生产日志非常庞大。我可以安全地删除它并允许Rails生成另一个?我必须重新启动Rails应用程序还是重新部署?我需要触摸production.log吗?生产中的大日志文件

这件事是300MB的大小,我想杀了它。

回答

0
/home/deploy/appname/current/log/*.log { 
    daily 
    missingok 
    rotate 7 
    compress 
    delaycompress 
    notifempty 
    copytruncate 
} 

与上面的配置使用logrotate,它的工作很好。

1

的宝石时添加到您的宝石文件

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" 

这将自动设置为您随时设置。

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的手册页,虽然说明是有点不言自明的。