La guía o código que verás en este post es la solución más sencilla y efectiva que encontramos a tus dudas o dilema.
Solución:
Encontré una solución y entendí por qué Spring no usa mi propiedad ‘logging.config’ definida en el application.properties
expediente.
Solución y explicación:
Al inicializar el registro, Spring Boot solo busca en classpath o variables de entorno.
La solución que utilicé fue incluir un archivo principal logback.xml que incluía el archivo de configuración de registro correcto de acuerdo con el perfil de primavera.
inicio de sesión.xml:
volver a iniciar sesión-[profile].xml (en este caso, logback-dev.xml):
%dISO8601 %p %t %c0.%M - %m%n
utf8
Nota :
‘spring.profiles.active’ debe establecerse en los argumentos de la línea de comando al iniciar la aplicación. EG para propiedades JVM: -Dspring.profiles.active=dev
Documentos de referencia:
- http://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.html
- http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
- http://docs.spring.io/spring-boot/docs/0.5.0.M3/api/org/springframework/boot/context/initializer/LoggingApplicationContextInitializer.html
Editar (múltiples perfiles activos) : Para evitar varios archivos, podríamos usar el procesamiento condicional que requiere la dependencia de Janino (configuración aquí), consulte la documentación condicional. Con este método, también podemos comprobar si hay varios perfiles activos al mismo tiempo. EG (no probé esta solución, así que comente si no funciona):
Consulte la respuesta de javasenior para ver otro ejemplo de un procesamiento condicional.
Otro enfoque que podría manejar múltiples perfiles es crear un archivo de propiedades separado para cada entorno.
application-prod.properties
logging.config=classpath:logback-prod.xml
application-dev.propiedades
logging.config=classpath:logback-dev.xml
application-local.properties
logging.config=classpath:logback-local.xml
TENGA EN CUENTA
Si no tiene cuidado, podría terminar iniciando sesión en algún lugar inesperado
-Dspring.profiles.active=local,dev //will use logback-dev.xml
-Dspring.profiles.active=dev,local //will use logback-local.xml
En lugar de agregar xml de inicio de sesión separados para cada perfil o tener la condición IF, sugeriría lo siguiente (si tiene menos diferencia en los xml) para facilitar el procesamiento condicional:
Si conservas alguna duda y capacidad de prosperar nuestro noticia puedes dejar una crítica y con deseo lo interpretaremos.