J'ai utilisé Tomcat et simplement remplacer le système de journalisation par défaut. Comment activer la journalisation avec logback sur wildfly dans mon application de printemps?
My Logback.xml owrking sur Tomcat
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<encoder>
<pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern>
</encoder>
</appender>
<logger name="org.springframework" level="WARN" />
<logger name="com.citronium.planstery" level="INFO" />
<logger name="org.Apache.http.impl.conn.tsccm" level="ERROR" />
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Vous pouvez utiliser logback pour configurer la journalisation dans votre application. Vous ne pouvez pas utiliser logback pour configurer la journalisation pour le serveur.
Pour utiliser la déconnexion dans votre configuration, vous devrez modifier le add-logging-api-dependencies
à false
ou créez un jboss-deployment-structure.xml
qui exclut le sous-système. Vous devrez également inclure logback et slf4j dans votre déploiement.
La première option de modification du add-logging-api-dependencies
est un paramètre global pour tous les déploiements. La commande CLI suivante modifiera la valeur:
/subsystem=logging:write-attribute(name=add-logging-api-dependencies,value=false)
Cette option n'ajoute tout simplement aucune des dépendances de journalisation implicite à votre déploiement.
La deuxième option d'utiliser un jboss-deployment-structure.xml
désactivera le sous-système de journalisation pour votre déploiement uniquement. Voici un exemple de fichier:
<jboss-deployment-structure>
<deployment>
<!-- exclude-subsystem prevents a subsystems deployment unit processors running on a deployment -->
<!-- which gives basically the same effect as removing the subsystem, but it only affects single deployment -->
<exclude-subsystems>
<subsystem name="logging" />
</exclude-subsystems>
</deployment>
</jboss-deployment-structure>
Voici comment nous procédons, d'ailleurs, nous utilisons wildfly-8.1.0-Final.
Créez d'abord un fichier jar contenant cette classe: https://Gist.github.com/xiaodong-xie/219491e0b433f8bd451e
Ensuite, placez ce fichier jar dans "wildfly-8.1.0.Final/modules/system/layers/base/org/jboss/logmanager/main" et ajoutez une référence à ce fichier jar dans le fichier module.xml de la même manière dossier.
Ensuite, mettez "logback-classic-1.1.2.jar" et "logback-core-1.1.2.jar" (vous pouvez utiliser n'importe quelle version de logback que vous choisissez) dans "wildfly-8.1.0.Final/modules/system/ couches/base/org/jboss/logmanager/main ", et référencez ces 2 fichiers jar dans le fichier module.xml.
Ajoutez les éléments suivants au "sous-système: journalisation" dans le fichier standalone.xml que vous utilisez:
<custom-handler name="logback" class="org.slf4j.bridge.SLF4JBridgeHandler" module="org.jboss.logmanager"></custom-handler>
Et référencez ce gestionnaire dans l'élément root-logger suivant:
<root-logger>
<level name="INFO"/>
<handlers>
<handler name="CONSOLE"/>
<handler name="logback"/>
</handlers>
</root-logger>
Voici un exemple de logback.xml:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"/>
<appender name="LOGFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${JBOSS_HOME}/standalone/log/server-logback.log</file>
<append>true</append>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="LOGFILE"/>
</appender>
<root level="INFO">
<appender-ref ref="ASYNC"/>
</root>
</configuration>
Et placez ce fichier logback.xml dans le dossier "wildfly-8.1.0.Final/standalone/configuration".
Ajoutez ce qui suit au fichier "standalone.sh" ou équivalent dans le dossier "wildfly-8.1.0.Final/bin".
-Dlogback.configurationFile=file:$JBOSS_CONFIG_DIR/logback.xml
Juste sous la ligne "-Dlogging.configuration = file: $ JBOSS_CONFIG_DIR/logging.properties". Il y a 2 emplacements dans le fichier "standalone.sh".
================================================== ===============================
Ou vous pouvez le faire de manière plus simple. :)
Placez les 2 fichiers jar de journalisation dans le module "jboss.logmanager" et ajoutez "-Dorg.jboss.logging.provider = slf4j" au fichier "standalone.sh", à la même position.
J'ai trouvé qu'il manquait un peu de journalisation si cela se passait, car Wildfly lui-même utilise toujours sa propre fonction de journalisation si c'est le cas.
S'amuser. :-)