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>