2009-12-17 14 views
2

Je suis l'emballage d'une application rails avec fauvette et je veux l'enregistrement spécifique de l'application. J'ai ajouté le jar log4j et commons-loggin au répertoire WEB-INF/lib, et je veux ajouter log4j.properties au répertoire WEB-INF/classes. Le problème est, je veux aussi la journalisation spécifique à l'environnement, donc mon staging/production utilise des propriétés différentes (à savoir INFO au lieu de DEBUG) que mon devel. Je ne peux pas faire juste un:Fauvette config.java_classes et log4j.properties

config.java_classes = FileList["lib/log4j-#{RAILS_ENV}.properties"] 

parce que Tomcat semble chercher le fichier spécifique log4j.properties. Est-il possible d'obtenir Warbler pour renommer ce fichier à seulement log4j.properties? Ou existe-t-il un meilleur mécanisme pour la journalisation spécifique à l'environnement et spécifique à l'application?

Répondre

3

Et la réponse finale.. RAILS_ENV ne semble pas fonctionner dans fauvette, mais en regardant à travers le docs sur config Warble, il y a un attribut qui contient webxml rails.env, modifier mon code pour tirer le fichier comme:

config.java_classes = FileList["lib/properties/log4j.properties.#{config.webxml.rails.env}"] 

travaillé comme un charme!

+0

Heureux que vous ayez pu trouver la réponse par vous-même! Avez-vous plus de points pour répondre à vos propres questions? –

0

Deviner Je devrais juste lire plus bas dans le fichier warble lui-même. Vous pouvez configurer des pathmaps pour les java_classes. Voici ce que je:

config.java_classes = FileList["lib/properties/log4j.properties.#{RAILS_ENV}"] 
config.pathmaps.java_classes << "%n" 

Le seul problème que j'ai trouvé est que cela ne fait mettre les log4j.properties dans le répertoire WEB-INF/classes plus. Il le met maintenant dans la racine. Semble étrange qu'il dit spécifiquement dans les docs:

Un ou plusieurs pathmaps définir comment les classes Java doivent être copiés dans des classes/WEB-INF

Je ne pense pas que je devrais ajouter dans ce chemin WEB-INF/classes manuellement mais je l'ai fait. Donc finalement alors, cela a fonctionné:

config.java_classes = FileList["lib/properties/log4j.properties.#{RAILS_ENV}"] 
config.pathmaps.java_classes << "WEB-INF/classes/%n" 

en utilisant les fichiers log4j.properties # {} RAILS_ENV dans le répertoire lib/propriétés

+0

gratter cela. Il semble que Warbler n'obtienne pas correctement les rails_env, j'utilise warbler (0.9.14). Dans mon déploiement de cap, j'ai correctement défini rails_env, je ne suis pas sûr de ce qui se passe ici, mais il est toujours log4j.properties.development – brad