Journaux JSF2 avec Tomcat
Je vais avoir un projet à l'aide de JSF2 (2.1.2), Richfaces4 (4.0.0.Final) sur tomcat6 (6.0.28). Afin de gérer la portabilité entre Tomcat et WebSphere7 pour mes Oreilles, j'ai le texte suivant pots à l'intérieur de ma lib de tomcat: el-api-2.2.jar, jsf-api-2.1.2.jar, jsf-impl-2.1.2.jar, validation-api-1.0.0.GA.jar.
Mon problème est que je n'ai jamais réussi à changer les niveaux de journal de JSF ou Richfaces et à l'exception de l'initialisation, je ne vois pas du tout l'intérieur de ma console. Même quand je reçois des exceptions dans ma réponse du serveur !
J'ai essayé plusieurs façons:
1) à l'Intérieur de mes applications, je suis en utilisant slf4j et log4j. Donc, de façon naturelle serait d'utiliser SLF4JBridgeHandler.(installer). J'ai fait une petite servlet pour appeler cette méthode au cours de sa méthode init() et ajouté un 'load-on-startup" pour être sûr qu'elle est chargée avant de JSF Servlet (je ne suis pas sûr de tomcat soucis à ce sujet load-on-startup directive parce que j'ai encore obtenir les journaux de JSF init avant), par exemple:
INFO: JSF1027 : [null] Les objets ELResolvers de JSF n’ont pas été enregistrés avec le conteneur JSP.
09-09-2011 16:50:58:591 [Thread-2] 937 DEBUG com.jsf.test.SLF4JBridgeHandlerInstallerServlet - SLF4JBridgeHandler.install() OK!
J'ai également ajouté un peu de configuration dans mon log4j.xml:
<logger name="javax.faces"><level value="debug"/></logger>
<logger name="com.sun.faces"><level value="debug"/></logger>
<logger name="javax.enterprise.resource.webcontainer.jsf"><level value="debug"/></logger>
Mais je ne vois pas de journaux dans ma console lors de l'affichage d'une page JSF...
J'ai aussi essayé d'utiliser un filtre d'appel SLF4JBridgeHandler.installer() avant l'exécution de la Servlet, JSF, mais je ne reçois beaucoup de OK les logs de mon filtre...
2) j'ai essayé de suivre le tutoriel ici exactement (il crée de nouveaux fichiers de logs du serveur tomcat dossier pour chaque enregistreur de JSF2). J'ai essayé en changeant l'exploitation forestière.propriétés dans le dossier conf de tomcat et par l'ajout d'un nouvel enregistrement.propriétés à l'intérieur de ma src/ressources/dossier dans mon application. Mais pas de chance...
3) j'ai essayé d'ajouter le JSF ouvriers de l'exploitation forestière.propriétés à l'intérieur de mon tomcat en ajoutant ceci:
javax.enterprise.resource.webcontainer.jsf.managedbean.level=FINEST
javax.enterprise.resource.webcontainer.jsf.managedbean.handlers = java.util.logging.ConsoleHandler
javax.enterprise.resource.webcontainer.jsf.config.level=FINEST
javax.enterprise.resource.webcontainer.jsf.config.handlers = java.util.logging.ConsoleHandler
javax.enterprise.resource.webcontainer.jsf.facelets.level=FINEST
javax.enterprise.resource.webcontainer.jsf.facelets.handlers = java.util.logging.ConsoleHandler
javax.enterprise.resource.webcontainer.jsf.resource.level=FINEST
javax.enterprise.resource.webcontainer.jsf.resource.handlers = java.util.logging.ConsoleHandler
javax.enterprise.resource.webcontainer.jsf.lifecycle.level=FINEST
javax.enterprise.resource.webcontainer.jsf.lifecycle.handlers = java.util.logging.ConsoleHandler
Pas de chance encore...
4) j'ai essayé d'utiliser log4j à l'intérieur de tomcat au lieu de juli en suivant cette documentation. Il semble bien fonctionner, mais en changeant la résultante de log4j.propriétés de mettre la JSF bûcherons de DÉBOGAGE ne fonctionne pas...
Une idée ?
Ce qui concerne,
Florian
source d'informationauteur Florian | 2011-09-09
Vous devez vous connecter pour publier un commentaire.
Deux faits:
java.util.la journalisation
API qui doit être configuré par unlogging.properties
fichier dans la racine de l'exécution classpath.logging.properties
fichier de la(!) l'exécution runtime environment (JRE) sera utilisé.Si vous utilisez Tomcat à partir de l'intérieur d'un IDE comme Eclipse, puis de Tomcat propre
logging.properties
ne sera pas utilisé. L'un dansJDK/JRE/lib
sera utilisé lorsque la "JDK" est le dossier d'installation du JDK commejdk1.6.0_23
. Si vous souhaitez spécifier explicitement l'emplacement de lalogging.properties
fichier, vous devez définir une VM argument:Quel que soit le fichier d'enregistrement utilisé, afin de permettre Mojarra de journalisation, vous devez ouvrir le
logging.properties
fichier de modèle en question, faites défiler vers le bas et de modifier la ligne suivante vers le basen
de sorte que le mondiale console à l'échelle
ALL
au lieu deINFO
. Sinon des niveaux inférieurs à laINFO
de ne plus être connecté à tous.Enfin, ajoutez les deux lignes suivantes à la fin du fichier
La première tourne sur toutes les JSF API de journalisation, le deuxième tourne sur toutes les JSF impl (Mojarra), l'exploitation, et la troisième s'allume tous les JSF Java EE journalisation.