...
Si se usa Lombok sólo es necesario anotar la clase con @Log4j2, no hace falta declarar la variable log. Configuración y uso de Lombok.
Configuración
...
| Bloque de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
...
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
...
</exclusions>
</dependency>
|
| Info |
|---|
Con la configuración actual de las APIs, con el parent fundewebjs-api-parent (ver Creación y estructura de proyecto SpringBoot o Migración de APIs a Parent FundeWebJS). No es necesario realizar ninguna configuración de librerías en pom.xml. |
Fichero log4j2.xml
| Info |
|---|
El fichero log4j2.xml se genera automáticamente al crear el proyecto, se menciona el contenido a título informativo. |
Añadir la dependencia spring-boot-starter-log4j2 en caso de que no se encuentre.
| Bloque de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
|
...
| Bloque de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-layout-template-json</artifactId>
<version>2.14.0</version>
</dependency>
|
Añadir la dependencia actuator en caso de que no se encuentre.
| Bloque de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
|
Fichero log4j2.xml
...
| Bloque de código | ||||||
|---|---|---|---|---|---|---|
| ||||||
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorinterval="60" >
<Properties>
<Property name="LOG_EXCEPTION_CONVERSION_WORD">%xwEx</Property>
<Property name="LOG_LEVEL_PATTERN">%5p</Property>
<Property name="LOG_DATEFORMAT_PATTERN">dd-MM-yyyy HH:mm:ss.SSS</Property>
<Property name="CONSOLE_LOG_PATTERN">%d{${LOG_DATEFORMAT_PATTERN}} ${LOG_LEVEL_PATTERN} ${sys:PID} --- [%t] %-40.40c{1.} : %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
</Properties>
<Appenders>
<Console name="local" target="SYSTEM_OUT" follow="true">
<PatternLayout pattern="${sys:CONSOLE_LOG_PATTERN}" />
</Console>
<Console name="json" target="SYSTEM_OUT" follow="true">
<JsonTemplateLayout eventTemplateUri="classpath:LogstashJsonEventLayoutV1.json" locationInfoEnabled="true" stackTraceEnabled="true"/>
</Console>
</Appenders>
<Loggers>
<Logger name="org.apache.catalina.startup.DigesterFactory" level="error" />
<Logger name="org.apache.catalina.util.LifecycleBase" level="error" />
<Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" />
<logger name="org.apache.sshd.common.util.SecurityUtils" level="warn"/>
<Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" />
<Logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error" />
<Logger name="org.hibernate.validator.internal.util.Version" level="warn" />
<logger name="org.springframework.boot.actuate.endpoint.jmx" level="warn"/>
<Root level="debug">
<AppenderRef ref="local" />
</Root>
</Loggers>
</Configuration> |
Esta configuración Este fichero sólo es valida valido para los despliegues locales. El appender "json" se incluye a título informativo.
La configuración por defecto para los entornos se establece en el alta de la aplicación y se encuentra en el repositorio git de despliegues de aplicaciones (Ver punto "Entornos").
Entornos
Los despliegues de las aplicaciones se gestionan mediante el repositorio gitops-k8s-infra (deploy-k8s-manifest en la infraestructura anterior). HelmChart.
El fichero log4j2.xml se inicializa Los ficheros log4j.xml y application.properties necesarios para la configuración de logs se inicializan en la creación de la aplicación y no es necesario modificarlos.
Estos ficheros se encuentran en https://gitlab.um.es/sistemas/gitops-k8s-infra/-/tree/master/deployments/[DOMINIO]/[APLICACION]/[ENTORNO] .modificarlo.
Si aún así se quiere realizar algún ajuste en loggers o niveles de traza, hay que seguir las indicaciones para el despliegue de aplicaciones:
https://gitlab.um.es/sistemas/gitops-k8s-infra/-/blob/master/deployments/README.md
Crear un fork del repositorio para nuestro grupo y crear una Merge Request para solicitar el cambio deseado Despliegues y configuración de los entornos.
NO CAMBIAR EL APPENDER "json".
Ante cualquier duda sobre configuración de logs o despliegues, no dude en ponerse en contacto con MNCS o Sistemas.
LAGAR
Al solicitarse el alta de la aplicación, Sistemas dará de alta el servicio para ver los logs de la aplicación en LAGAR.
Los índices a configurar en LAGAR tendrán la nomenclatura: K8S-[APLICACION]-ns-[ENTORNO].
Ver => Visualización de Logs de FundeWebJS en LAGAR.
Ante cualquier duda sobre permisos, configuración o uso de Lagar, no dude en ponerse en contacto con MNCS o Telemática.
Colorear logs en la consola local de eclipse con Spring-Boot
- Instalar el plugin "ANSI Escape in Console" desde el Marketplace de Eclipse.
Sustituir el valor de la property CONSOLE_LOG_PATTERN en el fichero log4j2.xml por:
Bloque de código language json %clr{%d{${sys:LOG_DATEFORMAT_PATTERN}}}{faint} %clr{${sys:LOG_LEVEL_PATTERN}} %clr{%pid}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}
Referencias
- Configuración Log4j por defecto en Spring-Boot: GitHub - Spring-Boot
- Log4j2 Appenders: ConsoleAppender.
- Log4j2 Layouts: JSONLayout
- WiKi Lagar para desarrolladores: https://wiki.um.es/wikis/lagar/doku.php?id=guia_desarrolladores
