with starter springprofile logger log tomcat war logback spring-boot

tomcat - starter - spring boot with logback



Spring-Boot Logging configuraciĆ³n cuando se implementa como.war (1)

He estado luchando con lo que podría ser el mismo problema: el registro funciona bien desde pruebas unitarias y ejecuta el método ''main ()'' de la aplicación, pero en tomcat ignora completamente mi configuración.

Resulta que al inicio, tomcat establece una variable de entorno ''LOGGING_CONFIG'' para describir la ubicación de su archivo ''logging.properties''. Esto se puede ver en tomcat / bin / catalina.sh o (.bat).

Spring Boot también lee el entorno en el arranque y, como parte de su manejo inteligente de la configuración, creo que convierte LOGGING_CONFIG en ''logging.config'', que es una propiedad que utiliza para permitirle anular la ubicación de su ''configuración de registro.

El problema es que luego intenta tratar ese valor como un nombre de archivo y cargarlo (en realidad no es un nombre de archivo sino una propiedad del sistema Java que describe un archivo), pero falla y no inicializa su registro correctamente y continúa con la configuración de Tomcat por defecto.

La solución parece ser asegurar que la variable de entorno se establezca primero, por ejemplo algo así como (su IDE debería tener una opción para esto - en Intellij vaya a Ejecutar -> Editar configuraciones -> Variables de entorno -> ingrese el nombre y valor de el seguimiento):

set logging.config=classpath:/logback.xml

Spring Boot usará esto en preferencia a LOGGING_CONFIG de Tomcat y funcionará como se espera.

Hasta ahora, sin embargo, no he podido hacer que esto funcione desde un archivo de configuración como application.properties, lo que significa que se trata de una configuración global para todas las aplicaciones implementadas en esa instancia de Tomcat.

EDITAR: esto se debería al hecho de que las variables de entorno anulan la configuración local de todos modos, que en cualquier otro caso, pero esto sería lo que querías :-(

EDIT 2: Puedo confirmar que a partir de Spring Boot 1.1.6, este problema se ha solucionado: se registra como una advertencia y continuará utilizando la configuración de registro existente (y correcta). Lamentablemente, no puede deshabilitar el mensaje de advertencia en su archivo logback.xml.

Tengo una aplicación simple de arranque de primavera empaquetada como archivo .war capaz de implementarse en un contenedor Tomcat externo. Tengo un logback.xml (a continuación) en el classpath (/ WEB-INF / classes), sin embargo, cuando se implementa en Tomcat, el registro no se escribe en el archivo.

<?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/base.xml"/> <logger name="org.springframework.web" level="DEBUG"/> </configuration>