Rails3.1 günlük dosyamın 21 metre büyüklüğünde olduğunu öğrenmek için tökezledim. Bu, normal boyut açısından mı? Üretim ortamında günlük dosyası ne ister? Ayrıca, günlükten kurtulabilir miyim? TeşekkürlerRuby on raylar kütük dosya büyüklüğü çok büyük
cevap
Sadece dosyayı silebilirsiniz!
Raylar, mevcut değilse yeni bir günlük oluşturur.
Önemliyse dosyayı önemli ölçüde kaydedin/yedekleyin, ancak genellikle değil.
Aynı sürücüye devam etmek, ancak yine de yerden tasarruf etmek istiyorsanız, yedeklenen dosyayı da (ve sonra da kaynağı silerek) daraltabilirsiniz. otomatik günlük dosyalarını (en iyi uzun vadeli çözüm) kullanımı günlüğü burada açıklandığı şekilde döndürmek döndürmek için
:
Ruby on Rails production log rotation
o zaman ayarla ve unut olabilir!
aslında açmış görmem alır değiştirmek için:
http://dennisreimann.de/blog/silencing-the-rails-log-on-a-per-action-basis/
Sen logrotate
kullanmak isteyebilirsiniz. Bu sorunun cevabına bakınız: Ruby on Rails production log rotation.
Rails uygulamanızın log
klasöründe, standart ortamların her birine karşılık gelen üç günlük dosyası bulunur. Günlük dosyaları zamanla çok büyüyebilir. Günlük dosyalarının kolay temizlenmesini sağlamak için bir rake task
sağlanmıştır.
rake log:clear
# Truncates all *.log files in log/ to zero bytes
# Specify which logs with LOGS=test,development,production
Bu anwser kabul edilmiş olmalıydı. Yolcu dağıtımında, günlük dosyasını sildiğinizde, raylar yeni bir tane oluşturmaz. – EGurelli
According to the documentation, sen günlük klasörün boyutunu sınırlamak için 'development.rb'-dosyasında bu koymak istiyorsanız: Günlük dosyalarınızı Bununla
config.logger = ActiveSupport::Logger.new(config.paths['log'].first, 1, 50 * 1024 * 1024)
asla 50 Mb'den büyük büyümeyecek. Boyutu kendi tercihinize göre değiştirebilirsiniz. İkinci parametrede ‘1’, 1 tarihi kayıt dosyasının tutulacağı anlamına gelir. Bu nedenle, 100Mb'ye kadar günlüğe sahip olursunuz - geçerli günlük ve önceki 50bb yığını. Böyle
Evet, Sen kullanarak yapabilirsiniz sözdizimi:
config.logger = ActiveSupport::Logger.new(config.log_file, num_of_file_to_keep, num_of_MB*1024*1024)
Örnek: Sadece, sen raylar ile çalıştırmak herhangi bir hizmetin günlük dosyasını kullanarak yapabilirsiniz log Raylar için kullanmayan
config.logger = ActiveSupport::Logger.new(config.log_file, 2, 20*1024*1024)
, böyle as: rpush günlüğü, ...
config.logger = ActiveSupport::Logger.new(nil)
, bir dosyaya günlük kaydını kandırır ve tamamen devre dışı bırakır (konsol çıkışı korunur).
otomatik olarak config/initializers/clear_development_log.rb
her sunucu başlangıcında üzerinde gelişiminde günlükleri temizleyin:
if Rails.env.development?
`rake log:clear`
end
Adil uzlaşmayı, bir in başlatıcısı: Demek
Rake::Task['log:clear'].invoke if Rails.env.development? || Rails.env.test?
eğer mümkünse raylar bilmediğimiz o bir günlük dosyası oluşturur. – Jason
Bunun kolayca yapılıp yapılmayacağını bilmiyorum. Belki de dev/null için takma ad? Nah, kullanmak daha iyi ve ben de bunu ekledim. –
bunu fark etti. – Jason