2013-03-06 2 views
3

J'ai une oreille qui a une guerre en tant que sous-déploiement. Le fichier ear a un répertoire META-INF qui a un fichier jboss-ejb-client.xml qui a juste un élément ejb-recievers et un webscheduler.war. Cette guerre utilise commons-logging-api.jar. Cette application est déployée sur jboss en 7.1.1.final. Je veux utiliser apache log4j pour la journalisation. Donc, j'ai ajouté un jboss-déploiement structure.xml dans le répertoire méta-inf de l'oreillejboss as 7.1.1 enregistrement final

<jboss-deployment-structure> 
<deployment> 
    <!-- Exclusions allow you to prevent the server from automatically adding some dependencies --> 
    <exclusions> 
     <module name="org.apache.log4j" /> 
     <module name="org.log4j"/> 
       <module name="org.jboss.logging"/> 
    </exclusions> 
</deployment> 
<sub-deployment name="a.war"> 
    <exclusions> 
     <module name="org.apache.log4j"/> 
    <module name="org.log4j"/> 
     <module name="org.jboss.logging"/> 
    </exclusions> 
</sub-deployment> 
</jboss-deployment-structure> 

J'ai un fichier commons-logging.properties dans le répertoire lib de la guerre qui a les éléments suivants en elle,

org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl 

log4j.configuration =/usr/share/wth/jboss/jboss-as-7.1.1/autonome/configuration/log4j.xml

également en dehors d'un log4j-1.2.11.jar Je n'ai pas d'autres jars de framework de journalisation dans la librairie (comme SLF4j etc). Comme vous pouvez le voir, le fichier log4j.xml se trouve dans le répertoire décrit par la propriété ci-dessus. Le problème est que lorsque je lance jboss, certains journaux d'application sont écrits dans le fichier journal décrit dans le fichier log4j.xml (disons /a/b/c/srv.log), mais simultanément les journaux sont également écrits dans le fichier srv.log par défaut dans le journal jboss directement (jboss/standalone/log/srv.log).

Qu'est-ce qui me manque pour que jboss n'utilise pas sa propre journalisation et utilise la configuration de log4j que j'ai fournie?

+0

Espérons que cela aidera http://stackoverflow.com/questions/14182257/using-applications-log4j-configuration-under-jboss-7-1-1/14337990#14337990 – gYanI

Répondre

2

Votre jboss-déploiement structure.xml devrait ressembler à:

<jboss-deployment-structure> 
    <deployment> 
    <exclusions> 
     <module name="org.apache.log4j"/> 
     <module name="org.apache.commons.logging"/> 
    </exclusions> 
    </deploymen> 
    <sub-deployment name="a.war"> 
    <exclusions> 
     <module name="org.apache.log4j"/> 
     <module name="org.apache.commons.logging"/> 
    </exclusions> 
    </sub-deployment> 
</jboss-deployment-structure> 

et vous devriez avoir vos propres pots inclus dans votre répertoire de projet lib. Par exemple:

EAR 
|-- META-INF 
| |-- jboss-deployment-structure.xml 
| `-- MANIFEST.MF 
|-- lib 
| |-- log4j.jar 
| `-- commons.logging.jar 
`-- a.war 

Assurez-vous que vous déployez avec le drapeau -Dorg.jboss.as.logging.per-deployment=false, sinon l'enregistrement ne fonctionne pas.

Exemple:

$ cd $JBOSS_HOME/bin 
$ ./standalone.sh -Dorg.jboss.as.logging.per-deployment=false 
+0

Si vous n'utilisez pas ACL, supprimez simplement toutes les exclusions de module ACL et JAR dans les exemples ci-dessus. – jyore

+0

Merci pour vos suggestions.Je ne veux pas utiliser ACL inclus dans jboss. J'ai donc ajouté l'exclusion org.apache.commons.logging dans le descripteur de déploiement. Le drapeau par déploiement que je connais n'est pas regardé dans jboss 7.1.1.final. Cependant je l'ai encore ajouté. Le problème est qu'une partie du journal des applications est en cours d'exécution dans mon journal personnalisé. Il semble donc que la configuration de log4j soit prise en compte. Mais les journaux écrits par les bibliothèques struts et hibernate (à l'intérieur de ma guerre) vont dans le journal jboss répertoire pour une raison quelconque. Certains journaux – TYS

+0

Seules certaines instructions de journal au démarrage de jboss sont écrites dans mon fichier journal personnalisé. Ces déclarations de journaux proviennent d'une de mes classes de la guerre. – TYS

Questions connexes