2011-09-19 8 views
5

Estoy usando log4j para iniciar sesión en mi aplicación. Desde ahora a configurar el registro yo estaba usando el siguiente código:Log4j configure y vea que no funciona correctamente

LogManager.resetConfiguration(); 
InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("log4j.properties"); 
Properties props= new Properties(); 
props.load(stream); 
PropertyConfigurator.configure(props); 

Pero el problema con esto era que cada vez que quería cambiar el nivel de registro durante el proceso, tuve que reiniciar el servidor. Así que he cambiado el código para: -

LogManager.resetConfiguration(); 
PropertyConfigurator.configureAndWatch(("log4j.properties", 900000L); 

este código idealmente debería ayudar a volver a cargar el archivo log4j.properties después del tiempo especificado, que he mencionado como 15 minutos. Pero todavía el código no está funcionando

¿Me falta algo durante el código?

Atentamente.

+1

¿Ha creado un ejemplo independiente de esto y lo ha intentado para ver si funciona como esperaba? Además, ¿ha pasado de una técnica de carga de classpath a una técnica basada en el sistema de archivos? En ese caso, asegúrese de que su ruta a log4j.properties sea correcta. –

Respuesta

7

configureAndWatch() relojes archivos. No recursos en el classpath.

+0

y probé con eso ... funcionó correctamente ... Gracias –

1

¡Probé la solución y funciona bien! El punto es que debes proporcionar la ruta como un archivo que no sea como un recurso.

//Resource 
DOMConfigurator.configureAndWatch("/log4j.xml", 2000L); 

//File 
DOMConfigurator.configureAndWatch("./src/log4j.xml", 2000L); 

Tratar la segunda opción y modificar los log4j.xml y probarlo!

Cuestiones relacionadas