varios que logger log implementar hacer getlogger conversionpattern con como archivo appenders java logging slf4j java.util.logging

que - logger log4j java



slf4j logging con jdk-¿Cómo habilitar la depuración? (3)

¿Por qué crees que no registra los mensajes DEBUG?

Si quiere decir que sus llamadas de registro log.debug(String) no terminan en los archivos de registro java.util.logging , entonces supongo que debe configurar el archivo de configuración logging.properties para permitir los mensajes de registro a nivel FINE .

Si no desea meterse con el %JRE_HOME%/lib/logging.properties , entonces puede pasar -Djava.util.logging.config.file=logging.properties en la línea de comandos - esto forzará el registro Sistema para buscar ese archivo de configuración en el directorio actual.

O use alguna otra forma (programática) de configurar java.util.logging , consulte más abajo para el tutorial.

Esto no tiene nada que ver con la configuración de SLF4J; De hecho, SLF4J no tiene ninguna configuración, todo se configura simplemente intercambiando archivos JAR.

Para tu referencia:

Por defecto, slf4j, cuando se usa con jdk ( slf4j-jdk14-1.6.1.jar ), no registra los mensajes de depuración. ¿Cómo los habilito?

No puedo encontrar información ni en los documentos oficiales, en la web ni aquí sobre cómo habilitarla.

Encontré algo de información (aunque falló) al crear un archivo en% JDK_HOME% / lib y definir el nivel allí, en un archivo de configuración. Sin embargo, me gustaría definir el nivel en tiempo de compilación / ejecución para poder ejecutar y depurar mi aplicación desde mi IDE con diferentes niveles de registro.

¿No hay alguna variable de entorno que pueda configurar, o VM arg?


Simplemente coloco mi archivo logging.properties en mis aplicaciones WEB-INF / classes (o uso el argumento de la línea de comandos identificado por Neeme Praks si no está implementando una guerra), y tengo el archivo de propiedades abierto en eclipse para que pueda afínelo para registrar los paquetes y en el nivel que me interesa.

En el archivo logging.properties, debe asegurarse de que tanto el nivel del registrador como el nivel del manejador estén configurados en el nivel que desea. Por ejemplo, si desea que su salida vaya a la consola, debe tener al menos lo siguiente:

#logging.properties file contents #Define handlers handlers=java.util.logging.ConsoleHandler #Set handler log level java.util.logging.ConsoleHandler.level=FINE #Define your logger level com.company.application.package.package.level=FINE #Assign your handler to your logger com.company.application.package.package.handlers=java.util.logging.ConsoleHandler

Usted mencionó el slf4j-jdk14-1.6.1.jar . Esto proporciona el enlace slf4j a java.util.logging. Necesitas tener eso en tu ruta de clase, pero asegúrate también de tener la API slf4j-api-1.7.12.jar ( slf4j-api-1.7.12.jar ) en tu ruta de slf4j-api-1.7.12.jar .

Considero que el archivo logging.properties de ejemplo en este enlace es útil para crear una variedad de registradores y manejadores, para darle un control detallado sobre qué registros van a la consola y qué registros van a un archivo :.

Y aquí está el manual de slf4j .


Si está usando la implementación slf4j SimpleLogger lea esto .

Allí puede ver que simpleLogger usa INFO como nivel de registro predeterminado. Puedes cambiarlo usando una propiedad del sistema. Esto es útil para entornos de no producción:

static { System.setProperty("org.slf4j.simpleLogger.defaultLogLevel", "trace"); }