maven-2 - vocales - rango vocal
Nivel de registro bajo fuego seguro de Maven (4)
Estaba analizando este problema exacto, pero no quería un cambio en el archivo de configuración del proyecto (pom.xml) cada vez que necesito un registro específico en una prueba.
La propiedad -D funciona desde la línea de comandos de maven.
Por lo tanto, puede seleccionar el archivo de configuración de registro desde la línea de comando:
mvn -Djava.util.logging.config.file=`enter filename here` test
Si está utilizando el denominador de nivel genérico .level=FINEST
tenga en cuenta que el registro de terceros también aparecerá en ese nivel.
Para deshabilitar o configurar el registro de Maven o de terceros a un nivel específico, use la selección explícita de nivel de registro para esas clases en el archivo de configuración de registro seleccionado.
Tengo un montón de líneas de registro de com.google.inject .....
aug 08, 2014 12:14:33 PM com.google.inject.internal.util.$Stopwatch resetAndLog
FINE: Instance member validation: 3ms
aug 08, 2014 12:14:33 PM com.google.inject.internal.util.$Stopwatch resetAndLog
FINE: Provider verification: 1ms
aug 08, 2014 12:14:33 PM com.google.inject.internal.util.$Stopwatch resetAndLog
FINE: Static member injection: 1ms
Así que agrego:
com.google.inject.level=INFO
al archivo. Recuerde que la configuración de nivel es recursiva a todas las subclases. Por com.level=NONE
tanto, com.level=NONE
deshabilitará todo el registro para todos los registradores del dominio com
.
Combinar esto con la función de selección de prueba -Dtest=...
en el complemento de seguro seguro que se describe here es muy bueno para aislar errores y errores.
No puedo ajustar el nivel de registro de java logging. Estoy usando maven surefire (mvn test), y estoy tratando de ajustar la información predeterminada a, por ejemplo, FINEST.
Tengo el archivo logging.properties bajo src / test / resources / logging.properties
después de compilar, veo en target / test-classes, veo un archivo logging.properties con la configuración deseada:
java.util.logging.ConsoleHandler.level = FINEST
javax.enterprise.system.container.ejb.level = FINE
...
sin embargo, la salida de la consola de glassfish solo tiene mensajes de nivel INFO / SEVERO.
¿Qué hice mal? ¿O es este otro dolor en el trasero con Maven?
Intenté configurar java.util.logging.config.file en la variable de entorno MAVEN_OPTS, que no funciona pero finalmente lo puso en funcionamiento al poner esa propiedad del sistema en el pom.xml (y, por supuesto, crear un logging.properties apropiado en src / prueba / recursos):
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<systemProperties>
<property>
<name>java.util.logging.config.file</name>
<value>src/test/resources/logging.properties</value>
</property>
</systemProperties>
</configuration>
</plugin>
</plugins>
Necesitas especificar tus manejadores en el archivo de registro.
handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler
entonces debería funcionar
tratar
${build.testOutputDirectory}/logging.properties
Además, especifico esto en la línea de comandos con surfire-args.
<argLine>${surefire.argLine} ${argLine} -Djava.util.logging.config.file=${build.testOutputDirectory}/logging.properties</argLine>