tutorial que mvc formulario example español ejemplo conceptos spring spring-boot logback

spring - mvc - Patrón de registro de arranque de primavera



spring mvc que es (6)

El patrón de registro se puede configurar usando el archivo application.properties

Ejemplo:

# Logging pattern for the console logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %msg%n

Tengo un problema con la configuración en Logback en una aplicación Spring Boot. Quiero que mi consoleAppender parezca al appender predeterminado de la consola Spring Boot. ¿Cómo heredar un patrón de la consola predeterminada de Spring Boot?

A continuación se muestra mi configuración de consoleAppender

<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern class="org."> %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n </Pattern> </layout> </appender>


Ha pasado un tiempo desde que se hizo esta pregunta, pero como tuve el problema recientemente y no pude encontrar una respuesta, comencé a profundizar un poco más y encontré una solución que funcionó para mí.

Terminé usando el depurador y eché un vistazo a los agregadores predeterminados adjuntos al registrador.

Encontré que este patrón funcionaba como lo deseaba para mí:

<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %5p 18737 --- [%t] %-40.40logger{39} : %m%n%wEx</pattern>

EDITAR: El patrón no es del todo correcto, vi que en el tiempo de ejecución algunos valores ya se habían creado (en este caso 18737 ---) buscaré la variable adecuada para sustituirla. Aunque contiene el formato para columnas de longitud fija

EDIT 2: Ok, eché otro vistazo a los contenidos del depurador. Esto también puede hacerlo usted mismo mirando el contenido de una instancia de registrador: Depurador (eclipse) Contenido del registrador

Así que terminé usando el patrón usado en el consoleAppender:

%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(18971){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx

Como se puede ver aquí:

Depurador: contenidos detallados del patrón del codificador.


Para aquellos que deseen usar la respuesta de Łukasz Frankowski (que parece la solución más limpia aquí), pero en una versión genial, la parte "problemática" {$PID:- } se puede expandir de la siguiente manera:

logback-spring.groovy

import ch.qos.logback.classic.PatternLayout import ch.qos.logback.core.ConsoleAppender import org.springframework.boot.logging.logback.ColorConverter import org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter import org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter import static ch.qos.logback.classic.Level.INFO conversionRule("clr", ColorConverter) conversionRule("wex", WhitespaceThrowableProxyConverter) conversionRule("wEx", ExtendedWhitespaceThrowableProxyConverter) appender("STDOUT", ConsoleAppender) { layout(PatternLayout) { def PID = System.getProperty("PID") ?: '''' pattern = "%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx" } } root(INFO, ["STDOUT"])


Puede encontrar el patrón de registro de la consola logback de inicio de primavera en el archivo defaults.xml:

spring-boot-1.5.0.RELEASE.jar / org / springframework / boot / logging / logback / defaults.xml

Patrón de consola:

<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>


Una vez que haya incluido la configuración predeterminada, puede usar sus valores en su propia configuración logback-spring.xml :

<?xml version="1.0" encoding="UTF-8"?> <configuration scan="true"> <!-- use Spring default values --> <include resource="org/springframework/boot/logging/logback/defaults.xml"/> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${CONSOLE_LOG_PATTERN}</pattern> <charset>utf8</charset> </encoder> </appender> … </configuration>


<?xml version="1.0" encoding="UTF-8"?> <configuration> <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <layout class="ch.qos.logback.classic.PatternLayout"> <Pattern> %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx </Pattern> </layout> </appender> <root level="info"> <appender-ref ref="STDOUT" /> </root> </configuration>