2013-02-07 120 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的手冊頁,雖然說明是有點不言自明的。