2009-02-05 7 views
6

Quelle est la meilleure façon d'utiliser un fichier log4j.properties externe dans Grails? Je voudrais utiliser le format log4j.properties traditionnel plutôt qu'une configuration de style log4j.groovy.Utilisation du fichier log4j.properties externe avec Grails

Je suis également curieux de savoir si la configuration externe jouera bien avec le fichier log4j.properties créé par grails war et mis dans le fichier war. Si je supprime la configuration log4j de Config.groovy, le fichier log4j.properties sera-t-il toujours placé dans le fichier war?

+0

Je revisité cette aujourd'hui et trouvé [cet article de blog] (http://techbeats.deluan.com/how-to-use-an-external-log4jproperties-in-you-0) qui offre un moyen de le faire en utilisant le bean Log4jConfigurer de Spring. Si j'ai une chance de l'essayer, je peux poster une réponse. –

Répondre

3

Vérifiez la Log4J Plugin qui stipule:.

« Certains old-school développeurs Java sont plus à l'aise avec log4j.xml même si le fichier de configuration est beaucoup plus grand Ce plugin fournit un moyen de désactiver la DSL par défaut Log4j et autorise l'utilisation de log4j.xml soit dans le formulaire original, soit dans le style Groovy MarkupBuilder. " Je ne l'ai pas utilisé moi-même, donc je ne peux pas parler de sa convivialité dans le contexte de WAR .. Juste GUERRE votre application, puis l'essayer .. Il devrait être dans le dossier WEB-INF quelque part évident. Si cela ne fonctionne pas, Mingfai sur le grails user list peut probablement vous aider.

+0

+1 Ceci est une solution raisonnable, mais ne fonctionnera pas tout à fait pour moi, puisque j'utilise Grails 1.0.3 (le plugin ne fonctionne que pour 1.1). Une réponse utile, cependant. Merci. –

4

Si vous utilisez série 1.0.x:

  • copie War.groovy de $ GRAILS_HOME/scripts à votre APP $/scripts
  • commentaire sur les lignes 145 et 154 du War.groovy copié Lancez votre fichier log4j.properties dans $ APP/grails-app/conf
  • lancez $ grails war, et il vous demandera de choisir le script de guerre à exécuter, puis choisissez votre script local (généralement # 1).
0

Au moins dans la série 1.0.x (non vérifiée en 1.1), oubliez le support de Grails et dépendez directement de Spring. Utilisez simplement le paramètre log4jConfigLocation dans web.xml. Plus d'infos here

6

Dans Grails 1 et 2, il y a un logging DSL qui est configuré et utilisé dans un hors-the-box webapp, vous devrez donc supprimer le code log4j = { ... } de grails-app/conf/Config.groovy

Si vous voulez utiliser un fichier de configuration externe pour vous connecter comme dans une application Web Java typique, puis mettez à jour le fichier grails-app/conf/spring/resources.groovy avec ce qui suit.

beans = { 
    log4jConfigurer(org.springframework.beans.factory.config.MethodInvokingFactoryBean) { 
     targetClass = "org.springframework.util.Log4jConfigurer" 
     targetMethod = "initLogging" 
     arguments = ["classpath:log4j.properties"] 
    } 
} 

Notez que le nom du package utilisé dans la configuration de votre appender Log4j ne sera probablement pas ce que vous attendez, car il aura un préfixe spécifique à Grails ajouté sur elle ...

WARN grails.app.controllers.org.example.BookController - This is a warn log message from BookController 
ERROR grails.app.controllers.org.example.BookController - This is an error log message from BookController 
Questions connexes