pattern name example java logging logback

java - name - logback pattern



Ejecutar Logback en Debug (5)

Así es como lo hago. Establecí una propiedad del sistema llamada ''log.level'', luego la referenciado en logback.xml.

Edición: la desventaja es que DEBES tener siempre configurado ''log.level''. La forma en que me ocupo de esto es verificar mi método principal y configurarlo en INFO si aún no está configurado, asegúrese de hacer esto antes de registrar las llamadas por primera vez. Luego puedo anular en la línea de comando y tener un valor predeterminado sensato.

Así es como se ve en mi logback.xml:

<configuration> <logger name="com.mycompany.project" level="${log.level}" /> <logger name="httpclient" level="WARN" /> <logger name="org.apache" level="WARN" /> <logger name="org.hibernate" level="WARN" /> <logger name="org.hibernate.cfg.AnnotationBinder" level="WARN" /> <logger name="org.hibernate.cfg.annotations" level="WARN" /> <logger name="org.quartz" level="WARN" /> <logger name="org.springframework" level="WARN" /> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%-16thread] %-5level %-35.35logger{30} - %msg%n</pattern> </encoder> </appender> <root level="${log.level:-INFO}"> <appender-ref ref="STDOUT" /> </root> </configuration>

Recientemente cambié de log4j a logback y me pregunto si hay una manera fácil de ejecutar logback en modo de depuración, similar a la propiedad log4j.debug de log4j. Necesito ver de dónde está recogiendo mi logback.xml .

Los documentos mencionan el uso de una StatusPrinter para imprimir el estado interno del logback, pero eso requeriría cambios de código.


En Eclipse puedes tener múltiples configuraciones de ejecución. Abre tu clase principal. Vaya al menú desplegable Depuración en la barra de herramientas de eclipse y seleccione Configuraciones de depuración. Haga clic en el icono de Nueva configuración de inicio en la esquina superior izquierda. Dale a tu configuración de lanzamiento un nombre mejor. Haga clic en la pestaña Argumentos debajo del nombre e ingrese -Dlog.level = debug o lo que desee. Haga clic en Cerrar o Depurar

Puede hacer esto de nuevo y especificar -Dlog.level = warn por ejemplo.


No pude hacerlo funcionar usando la respuesta elegida. Sin embargo, lo siguiente funcionó:

java -Dlogback.configurationFile=/path/to/config-debug.xml com.domain.Main

Simplemente agregue un archivo ( config-debug.xml en este ejemplo) en algún lugar de su servidor y déjelo allí cuando necesite depurar. Como el siguiente.

<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <!-- encoders are assigned the type ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> <encoder> <pattern>%d{dd-MMM-yyyy HH:mm:ss.SSS} %-5level [%thread] %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="debug"> <appender-ref ref="STDOUT" /> </root> </configuration>

Ejecute su aplicación usando el parámetro -D mencionado anteriormente.

Cuando las cosas vuelvan a la normalidad, elimine el parámetro -D y reinicie su aplicación.

Fuente: Capítulo 3: Configuración de Logback


Puede establecer la clase de escucha de estado a través de la propiedad del sistema:

java -Dlogback.statusListenerClass=ch.qos.logback.core.status.OnConsoleStatusListener ...

Ver: manual de Logback


[EDITAR]

Esto se ha corregido en Logback 1.0.4. Ahora puede usar -Dlogback.debug=true para habilitar la depuración de la configuración de logback.

- Vieja respuesta -

Desafortunadamente, no hay forma de habilitar la depuración a través de una propiedad del sistema. logback.xml usar <configuration debug="true"> en el logback.xml . Por favor, envíe una solicitud de función.