it-swarm-id.com

Log file ukuran Ruby on Rails juga besar

Saya tersandung ketika mengetahui bahwa file log Rails3.1 saya sangat besar, sekitar 21MB. Apakah ini, dalam hal ukuran normal? Seperti apa file log di lingkungan produksi? Selain itu, bisakah saya menyingkirkan log? Terima kasih

27
Jason

anda cukup menghapus file!
Rails akan membuat log baru jika tidak ada.
Jelas menyimpan/membuat cadangan file jika itu penting, tetapi biasanya tidak.
Anda juga dapat mengaitkan file yang dicadangkan (dan kemudian menghapus sumbernya) jika Anda ingin menyimpannya di drive yang sama tetapi masih menghemat ruang.

Untuk memutar file log secara otomatis (solusi jangka panjang terbaik) gunakan putar log seperti yang dijelaskan di sini:

Rotasi log produksi Ruby on Rails

maka Anda dapat mengaturnya dan melupakannya!

Untuk benar-benar mengubah apa yang dicatat, lihat:

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

23
Michael Durrant

Folder log aplikasi Rails Anda menampung tiga file log yang sesuai dengan masing-masing lingkungan standar. File log dapat tumbuh sangat besar seiring waktu. rake task disediakan untuk memungkinkan pembersihan file log dengan mudah.

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

Menurut dokumentasi , jika Anda ingin membatasi ukuran folder log, letakkan ini di file 'development.rb' Anda:

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

Dengan ini, file log Anda tidak akan pernah tumbuh lebih besar dari 50 MB. Anda dapat mengubah ukuran sesuai keinginan Anda. '1' pada parameter kedua berarti 1 file log historis akan disimpan, sehingga Anda akan memiliki hingga 100 MB log - log saat ini dan potongan sebelumnya 50 MB.

7
Fellow Stranger

Anda mungkin ingin menggunakan logrotate. Lihat jawaban atas pertanyaan ini: Rotasi log produksi Ruby on Rails .

5
htanata

Saya secara otomatis menghapus log yang sedang dikembangkan pada setiap server mulai dengan config/initializers/clear_development_log.rb:

if Rails.env.development?
  `rake log:clear`
end
4
Drew Stephens

Ya, Anda dapat menggunakan sintaks seperti ini:

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

Contoh:

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

Itu tidak hanya menggunakan untuk log Rails, Anda dapat menggunakan file log dari setiap layanan yang dijalankan dengan Rails, seperti: rpush log, ...

1
ThienSuBS

Kompromi yang adil, dalam inisialisasi:

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

config.logger = ActiveSupport::Logger.new(nil) melakukan trik dan sepenuhnya menonaktifkan logging ke file (output konsol dipertahankan).

0
Artur Beljajev