J'ai une application Web qui utilise la classe Log4jConfigurer
de Spring pour initialiser ma fabrique de journaux Log4J. Fondamentalement, il initialise Log4J avec un fichier de configuration qui est hors du chemin de la classe.Initialisation de Log4J avec Spring?
Voici la config:
<bean id="log4jInitializer" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean" depends-on="sbeHome">
<property name="targetClass" value="org.springframework.util.Log4jConfigurer" />
<property name="targetMethod" value="initLogging" />
<property name="arguments">
<list>
<value>#{ MyAppHome + '/conf/log4j.xml'}</value>
</list>
</property>
</bean>
Cependant, je reçois cette erreur au démarrage de l'application:
log4j:WARN No appenders could be found for logger
et des tonnes d'applications Spring messages d'initialisation de contexte sont imprimés sur la console. Je pense que c'est parce que Spring travaille pour initialiser mon application avant qu'elle n'ait une chance d'initialiser mon enregistreur. En cas de problème, j'utilise SLF4J en plus de Log4J.
Y a-t-il un moyen pour que mon Log4jConfigurer soit le premier bean initialisé? ou existe-t-il un autre moyen de résoudre ce problème?
J'aurais dû mentionner que mon chemin vers le fichier de propriétés log4J provient d'une chaîne JNDI. Comment puis-je fournir cette valeur JNDI à. Si je pouvais le faire, je pense que je suis prêt. –
HDave
J'ai trouvé ceci: http://www.coderanch.com/t/362833/Servlets/java/log-ServletContextListener - il montre comment implémenter votre propre écouteur de configuration de log4j qui obtient quelques informations par JNDI – Ralph
J'ai créé mon propre écouteur de contexte de servlet comme ils l'ont fait et tout fonctionne parfaitement. Merci. – HDave