2009-11-03 16 views
13

tengo un arnés de prueba de integración automatizado y le gustaría simplificar el registro (que se implementa utilizando log4j)crear mediante programación diferentes archivos de registro utilizando log4j

Tengo un número de pruebas de alto nivel, cada uno con un ID y una requiere un archivo de registro separado por prueba. Como las pruebas se crean aleatoriamente, los ids no se conocen hasta el tiempo de ejecución.

Por lo tanto, me gustaría asegurarme de que el registro dentro de cada prueba de alto nivel se escriba en el archivo de registro para esa prueba.

No quiero crear niveles de registro personalizados, tampoco quiero que el registro se envíe a todos los anexos.

¿Alguien sabe una manera de hacer esto?

Respuesta

23

Puede invocar fácilmente la API de log4j programáticamente, p. Ej.

FileAppender appender = new FileAppender(); 
// configure the appender here, with file location, etc 
appender.activateOptions(); 

Logger logger = getRootLogger(); 
logger.addAppender(appender); 

El logger puede ser el registrador de la raíz como en este ejemplo, o cualquier registrador de abajo del árbol. La prueba unitaria puede agregar su appender personalizado durante steup y eliminar el appender (usando removeAppender()) durante el desmontaje.

Cuestiones relacionadas