2011-10-16 45 views
19

我偶然發現我的rails3.1日誌文件超大,大約21mb。 這是在大小正常嗎?生產環境中的日誌文件需要什麼? 此外,我可以擺脫日誌?謝謝Ruby on rails日誌文件大小太大

回答

19

你可以刪除文件!
如果不存在,Rails將創建一個新日誌。
顯然保存/備份文件,如果它很重要,但通常不是。
如果您想將它保留在同一個驅動器上,但仍可節省空間,您還可以壓縮備份文件(然後刪除源文件)。

自動旋轉日誌文件(最好的長期解決方案)使用日誌旋轉,如下所述:

Ruby on Rails production log rotation

那麼你可以設置它,忘記它!

實際更改記錄的內容請參見:

http://dennisreimann.de/blog/silencing-the-rails-log-on-a-per-action-basis/

+0

我的意思是,如果這是可能的導軌不生成一個日誌文件。 – Jason

+0

我不知道這是否可以輕鬆完成。也許將它設置爲dev/null?那麼,最好使用旋轉,所以我也添加了。 –

+0

明白了,謝謝。 – Jason

52

Rails應用程序的log文件夾包含三個對應於每個標準環境的日誌文件。隨着時間的推移日誌文件可能會變得非常大提供了一個rake task以允許輕鬆清除日誌文件。

rake log:clear 
# Truncates all *.log files in log/ to zero bytes 
# Specify which logs with LOGS=test,development,production 
+4

此anwser應該已被接受。在乘客部署中,一旦刪除了日誌文件,rails就不會創建新的日誌文件。 – EGurelli

4

According to the documentation,如果要限制日誌文件夾的大小,把這個在你的「development.rb'文件:

config.logger = ActiveSupport::Logger.new(config.paths['log'].first, 1, 50 * 1024 * 1024) 

有了這個,你的日誌文件永遠不會超過50Mb。您可以根據自己的喜好更改尺寸。第二個參數中的'1'表示將保留1個歷史日誌文件,因此您將擁有高達100Mb的日誌 - 當前日誌和前一個50Mb塊。

0

是的,你可以使用語法如下:

config.logger = ActiveSupport::Logger.new(config.log_file, num_of_file_to_keep, num_of_MB*1024*1024) 

例子:

config.logger = ActiveSupport::Logger.new(config.log_file, 2, 20*1024*1024) 

它不僅使用Rails日誌,您可以使用與軌運行的所有服務日誌文件,例如作爲:rpush日誌,...

0

config.logger = ActiveSupport::Logger.new(nil)訣竅和完全禁用日誌記錄到文件(控制檯輸出保留)。

3

我自動config/initializers/clear_development_log.rb清除日誌在每個服務器開始發展:

if Rails.env.development? 
    `rake log:clear` 
end 
0

一個公平的妥協,在初始化:

Rake::Task['log:clear'].invoke if Rails.env.development? || Rails.env.test?