Ruby on rails Taille du fichier journal trop grande

J'ai trébuché pour apprendre que mon fichier journal rails3.1 est super grand, autour de 21mb. Est-ce, en termes de taille normale? Ce que le fichier journal dans l'environnement de production? Par ailleurs, puis-je me débarrasser de la bûche?merci

25
demandé sur Michael Durrant 2011-10-16 15:51:40

8 réponses

, Vous pouvez simplement supprimer le fichier!
Rails créera un nouveau journal s'il n'en existe pas.
Évidemment enregistrer / sauvegarder le fichier si c'est important, mais généralement, il n'.
Vous pouvez également compresser le fichier sauvegardé (puis supprimer la source) si vous voulez le garder sur le même lecteur mais économiser de l'espace.

Pour faire pivoter automatiquement les fichiers journaux (la meilleure solution à long terme), utilisez log rotate comme décrit ici:

Rotation du journal de production Ruby on Rails

Alors vous peut-set it and forget it!

Pour changer réellement ce qui est enregistré, voir:

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

21
répondu Michael Durrant 2017-05-23 10:31:30

Le dossier log de votre application Rails contient trois fichiers journaux correspondant à chacun des environnements standard. Les fichiers journaux peuvent devenir très volumineux au fil du temps. Un rake task est fourni pour permettre l'effacement facile des fichiers journaux.

rake log:clear
# Truncates all *.log files in log/ to zero bytes 
# Specify which logs with LOGS=test,development,production
64
répondu Raj Adroit 2015-03-19 08:37:02

Selon la documentation , Si vous voulez limiter la taille du dossier journal, mettez ceci dans votre 'développement.RB ' - fichier:

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

Avec cela, vos fichiers journaux ne dépasseront jamais 50 Mo. Vous pouvez modifier la taille selon vos préférences. Le ‘1 ' dans le deuxième paramètre signifie que 1 fichier journal historique sera conservé, de sorte que vous aurez jusqu'à 100 Mo de journaux – le journal actuel et le morceau précédent de 50 Mo.

6
répondu Fellow Stranger 2016-05-28 13:35:15

Vous pouvez utiliser logrotate. Jetez un oeil à la réponse à cette question: Ruby on Rails production log rotation .

5
répondu htanata 2017-05-23 12:26:24

J'efface automatiquement les journaux en développement sur chaque serveur commencer par config/initializers/clear_development_log.rb:

if Rails.env.development?
  `rake log:clear`
end
4
répondu Drew Stephens 2016-12-21 15:07:57

Oui, vous pouvez utiliser la syntaxe comme ceci:

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

Exemple:

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

Il utilise non seulement pour Rails log, vous pouvez utiliser le fichier journal de tous les services exécutés avec rails, tels que: rpush log,...

1
répondu ThienSuBS 2016-08-03 06:55:30

config.logger = ActiveSupport::Logger.new(nil) fait l'affaire et désactive complètement la journalisation dans un fichier (la sortie de la console est préservée).

0
répondu Artur Beljajev 2016-08-27 13:42:52

Un compromis juste, dans un initialiseur:

Rake::Task['log:clear'].invoke if Rails.env.development? || Rails.env.test?
0
répondu Dorian 2017-03-31 17:26:08