sl4j / logback sous weblogic
Je suis en train de configurer sl4j/logback sous Weblogic12.
- Je déployer le fichier ear de, qui a de guerre de fichier, qui a WEB-INF\classes\logback.xml
Voici la config:
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
Mon code pour vous connecter :
private static final Logger logger = LoggerFactory.getLogger(FrontEndServlet.class);
//......
logger.info("info test");
logger.debug("debug test");
logger.error("error test");
Ce que je vois dans le standart de sortie est :
ьрщ 14, 2012 5:09:29 PM .....FrontEndServlet doPost
INFO: info test
ьрщ 14, 2012 5:09:29 PM .....FrontEndServlet doPost
SEVERE: error test
Ainsi, il ressemble fichier de config n'est pas ramassé.
Ce que je fais mal?
source d'informationauteur mik
Vous devez vous connecter pour publier un commentaire.
Le problème est discuté en détail ici: https://stagingthinking.wordpress.com/2012/06/02/annoying-slf4j-problem-in-weblogic-server-12c/
Le package exact vous avez besoin de mettre à l'préférez-application-paquets mécanisme est
org.slf4j
comme ceci:Remarque: Aussi cette question est déjà répondu, je tiens à ajouter que vous devez également ajouter
prefer-application-resources
.Réponse: Ajouter un fichier appelé META-INF/weblogic-application.xml pour votre oreille, contenant à la fois
prefer-application-packages
etprefer-application-resources
!Le problème était sl4j ne capte pas logback et utilisé Weblogic de slf4j-jdk journalisation de la place. Peut être fixé avec Weblogic configuration de weblogic-application.xmloption préférez-application-paquets
Alternativement, ou si vous avez des problèmes avec juste plus de slf4j, vous pouvez utiliser
Au lieu de
Source: Oracle
Environnement: Weblogic 12.2.1
Journalisation : Slf4j et Logback
Exigence : se Connecter à un fichier de mon choix (par application) ainsi que de Weblogic server logs
À l'aide de la
<prefer-application-packages/>
ou<prefer-web-inf-classes>
dans weblogic.xml n'a pas satisfait à l'exigence. Dans mes tests, à l'aide de l'une ou l'autre des balises (vous ne pouvez pas utiliser les deux) entraînera l'application logback.xml à être ramassé et l'enregistrement d'aller dans le fichier défini dans logback.xml. Cependant, la caractéristique la sortie standard définition en utilisant logback de ConsoleAppender ne consigne pas dans les journaux du serveur.Retrait de la suite de weblogic.xml
entraînera à l'aide du logiciel SLF4j de liaison, qui dans Weblogic 12.2.1, est Java Util de journalisation. Dans ce cas, connectez-vous des déclarations vont dans les journaux du serveur et de ne pas le fichier de définition au niveau de l'application logback.xml. Dans mes recherches, il apparaît à un moment, une version de Weblogic 12 permis à l'interne SLF4j d'être lié à Log4j mais il a été retiré dans l'une des versions mineures. Cela a été mon cas; je n'ai pas eu la possibilité de l'activer Log4j comme le principal journalisation dans Weblogic par le biais de la console d'administration. Je suis assez sûr que ce ne serait pas de m'avoir aidé, mais je voulais le noter parce que plusieurs documents que j'ai lu a indiqué que cela ne soit disponible.
Après beaucoup de recherche et de lutte contre la configuration avec weblogic.xml la configuration des POM (exclusions, etc) et l'utilisation de différentes liaisons et les ponts, j'ai été incapable de réaliser la configuration de la journalisation que je voulais. Il semble que Weblogic de slf4j est lié à Java utilitaire de journalisation, pour le meilleur ou pour le pire. Si vous choisissez votre propre mise en œuvre de slf4j et de liaison (dans mon cas Logback), il n'y a aucun moyen que je pouvais trouver pour acheminer les messages de Weblogic server logs par la configuration. Il ne peut être une liaison en slf4j, et bien que de nombreux cadres peuvent être acheminés à une liaison, (j'ai trouvé cette diagramme utile) Weblogic 12.2.1 emploie uniquement Java util journalisation de liaison, il n'y a aucun moyen de (lors de la configuration de l'application) afin de fil de Weblogic pour utiliser le Logback de liaison que vous fournissez pour vous connecter à son serveur de logs. Il pourrait y avoir un moyen d'utiliser log4j et des ponts pour accomplir cela, mais pour moi c'est trop de ballonnements et de configuration pour accomplir une simple tâche d'enregistrement.
Renoncer à essayer de conquérir cette configuration, j'ai décidé d'écrire tout simplement mon propre logback appender qui se traduit par un événement de journalisation dans un JUIL événement de journalisation. J'ai remplacé le standard STDOUT définition vu dans de nombreux Logback exemples avec mes propre mise en œuvre de Logback de AppenderBase. À ce stade, je peux maintenant vous connecter à l'aide par l'application de configuration de l'enregistrement et également vous connecter au Serveur Weblogic journal.
Pertinentes POM Dépendances:
weblogic.xml (Notez ici que Hibernate est livré avec JbossLogging qui va du pont de slf4j automatiquement)
Logback AppenderBase mise en œuvre
}
Logback.xml configuration
J'espère que je peux en sauver d'autres une partie de la douleur que j'ai vécu en essayant de le faire fonctionner comme je le voulais.