Tengo una aplicación web que usa la clase Log4jConfigurer
de Spring para inicializar la fábrica de registros Log4J. Básicamente inicializa Log4J con un archivo de configuración que está fuera de la ruta de clases.Inicializando Log4J con Spring?
Aquí está el 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>
Sin embargo, me sale este error en el inicio de la aplicación:
log4j:WARN No appenders could be found for logger
y un montón de mensajes de inicialización de contexto de aplicación de primavera se imprimen en la consola. Creo que esto se debe a que Spring está trabajando para inicializar mi aplicación antes de que tenga la oportunidad de inicializar mi registrador. En caso de que importe, estoy usando SLF4J encima de Log4J.
¿Hay alguna forma de que pueda obtener mi Log4jConfigurer para ser el primer bean inicializado? o hay alguna otra forma de resolver esto?
Debería haber mencionado que mi ruta al archivo de propiedades log4J proviene de una cadena JNDI. ¿Cómo puedo proporcionar ese valor JNDI a. Si pudiera hacer eso, creo que ya estoy listo. –
HDave
He encontrado esto: http://www.coderanch.com/t/362833/Servlets/java/log-ServletContextListener - muestra cómo implementar su propio oyente de configuración de log4j que obtiene información de JNDI – Ralph
Creé mi propio Servidor de contexto de servlet como lo hicieron y todo funciona perfectamente. Gracias. – HDave