9
votes

Rotation / nettoyage de journal dans Ruby sur rails

Comment puis-je configurer le nettoyage automatique sur test.log et développement.log in Ruby sur rails?

existe-t-il un paramètre pour supprimer automatiquement Dev et des journaux de test sur le démarrage et les tests du serveur exécutés?


1 commentaires

Qu'est-ce que tu veux dire exactement par "nettoyage"?


5 Réponses :


16
votes

rake journal: Effacer est une tâche de râteau qui tronque tous les fichiers correspondant à journal / *. Journal à zéro octets. Vous pouvez l'appeler dans vos tâches de test de votre serveur et d'exécuter des tests.


1 commentaires

+1 pour la tâche de la râteau. De même, vous pouvez également supprimer manuellement tous les fichiers journaux sur le disque avec fichier.delete () (assurez-vous également de supprimer tous les fichiers roulés terminés dans .0 , .1 , etc ...). Ensuite, vous pouvez réinitialiser l'enregistreur avec @ logger.reopen et ce sera recréer le fichier journal.



1
votes

Tous script / serveur est, est un script rubis, je suis sûr que vous pourriez la modifier pour faire quelque chose comme: xxx


0 commentaires

19
votes

the Ruby Logger est à portée de main pour vous aider ici - et il a des options par défaut pour la rotation.

Voici ce que je fais: p>

dans Environnement.rb Code> Nous définissons notre propre enregistreur p>

Rails::Initializer.run do |config|

  config.active_record.logger = new_logger
  config.action_controller.logger = new_logger

  #snip
end


2 commentaires

Remarque: Dans Rails 3, votre "bloc d'initalisation" est en développement.rb, production.rb, etc.


En outre, dans Rails 3 Votre rails_root est rails.root et rails_env est rails.env . On dirait que la communauté des rails n'est plus dans les capuchons-verrouillage?



0
votes

Dans l'environnement de production, vous avez vraiment besoin de sysloglogger ( http: //Rails-analyzer.rubyforge.org/tools/files/lib/analyzer_tools/syslog_logger_rb.html ), il vous permet d'écrire à SysLogd, qui fait pivoter vos fichiers dans la configuration distribuée.


0 commentaires

0
votes

Après avoir expérimenté, j'ai trouvé que les initialisateurs de rails sont chargés au point droit où vous pouvez tronquer le fichier à l'aide de la classe Standard Ruby Classe . J'ai ceci dans config / initialiseurs / troncate_logs_on_server_start.rb : xxx

Vous devez alors définir myRailsapp :: application.config.trunate_logs_on_server_start dans application.rb et les différents environnements.


0 commentaires