2010-12-15 90 views
0

Je ne peux pas configurer org.hibernate.type (enregistrement des variables de liaison utilisées dans les instructions préparées par hibernate) en utilisant log4j.xml, mais peut utiliser le log4j DSL dans Config.groovy.grails/gorm/org.hibernate.type à TRACE n'imprime rien

Nous devons configurer la journalisation pour différents environnements sans créer de WAR différents pour chacun d'entre eux et donc utiliser log4j.xml plutôt que DSL, si possible.

ont mis

 
<logger name="org.hibernate.type"> 
    <level value="TRACE"/> 
    <appender-ref ref="console"/> 
</logger> 

mais les liaisons ne sont pas imprimées. Auparavant dans la DSL ils l'ont fait.

très étrange, d'autant plus que la journalisation hibernate est contrôlable via log4j.xml.

Des pensées très appréciées. En outre, l'utilisation du DSL dans Config.groovy est conseillée comme la meilleure pratique pour gérer la configuration dans les environnements de manière flexible - un objet compilé contenant une configuration semble surprenante - mais je suis nouveau pour les grails.

Répondre

0

Je vous suggère d'utiliser des fichiers de configuration séparés pour chaque serveur. Pour avoir un fichier de configuration personnalisé dans le dossier d'accueil de votre serveur, mettez quelque chose comme ce qui suit dans config.groovy:

grails.config.locations = [ "file:${userHome}/customConfig.groovy" ] 

Ensuite, créez customConfig.groovy dans le dossier d'accueil de votre serveur web (quelque chose comme vim ~tomcat/customConfig.groovy si vous utilisez Linux & Tomcat) et remplacer les propriétés que vous voulez. Le seul inconvénient est que pour la journalisation DSL, vous devez fournir le bloc de journalisation complet ici (vous ne pouvez pas simplement remplacer les propriétés sélectionnées comme vous pouvez avec la plupart des autres paramètres de configuration). De cette façon, il vous suffit de redémarrer votre application Web lorsque la configuration change et que vous n'avez pas besoin d'avoir des versions distinctes pour les différents serveurs.

0

vous pouvez configurer votre journalisation en fonction de l'environnement dans le fichier Config.groovy

// set per-environment 
environments { 
    development { 
     log4j = { 
      ... 
     } 
    } 
    test { 
     log4j = { 
      ... 
     } 
    } 
} 
+0

Nous vous remercions pour cela - peut-être ce que nous finissons par faire - mais ne permet pas les changements dans les niveaux de journalisation sans une recompilation qui est une restriction. Il peut être utile de redémarrer temporairement les serveurs, de remonter les niveaux de journalisation pour les traces de messages, de tracer la trace, de SQL etc, puis de ramener le niveau et de le restaurer. – Alex