Comment puis-je configurer le nettoyage automatique sur test.log et développement.log in Ruby sur rails? P>
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? P>
5 Réponses :
rake journal: Effacer code> est une tâche de râteau qui tronque tous les fichiers correspondant à
journal / *. Journal code> à zéro octets.
Vous pouvez l'appeler dans vos tâches de test de votre serveur et d'exécuter des tests. P>
+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 () code> (assurez-vous également de supprimer tous les fichiers roulés terminés dans
.0 code>,
.1 code>, etc ...). Ensuite, vous pouvez réinitialiser l'enregistreur avec
@ logger.reopen code> et ce sera recréer le fichier journal.
Tous script / serveur est, est un script rubis, je suis sûr que vous pourriez la modifier pour faire quelque chose comme:
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
Remarque: Dans Rails 3, votre "bloc d'initalisation" est en développement.rb, production.rb, etc.
En outre, dans Rails 3 Votre rails_root code> est
rails.root code> et
rails_env code> est
rails.env code>. On dirait que la communauté des rails n'est plus dans les capuchons-verrouillage?
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. P>
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 Vous devez alors définir Classe CODE>. J'ai ceci dans config / initialiseurs / troncate_logs_on_server_start.rb em>:
myRailsapp :: application.config.trunate_logs_on_server_start code > dans application.rb em> et les différents environnements. P> p>
Qu'est-ce que tu veux dire exactement par "nettoyage"?