Nuestros mejores desarrolladores agotaron sus reservas de café, en su búsqueda todo el tiempo por la resolución, hasta que Gerardo encontró el hallazgo en GitHub así que en este momento la comparte con nosotros.
Solución:
Por mi parte, estoy usando un archivo de propiedades en lugar de uno yaml. Quería dos archivos de registro: uno que registra todo en la consola y otro que registra un archivo. Así que hice dos archivos de configuración log4j2: log4j2-dev.xml y log4j2-file.xml.
Uso dos perfiles de Spring: el predeterminado y otro llamado “dev”. Para cambiar el archivo de configuración log4j2, creé un archivo application.properties que contiene:
spring.profiles.active=
logging.config=classpath:log4j2-file.xml
Y tengo otro archivo de propiedades, application-dev.properties, que se activa automáticamente cuando Spring detecta el perfil “dev”. Contiene:
logging.config=classpath:log4j2-dev.xml
Cuando quiero usar la configuración log4j2-dev.xml, solo agrego “dev” como valor de “spring.profiles.active=” en application.properties.
Puedes echar un vistazo a la respuesta de Feiyu Zhou en esta página. Él presenta una solución usando un archivo de configuración de Yaml: ¿Cómo definir la ruta log4j2 por application.properties?
Por supuesto, siempre puede eliminar el attribute logging.config de application.properties y cambie el nombre de log4j2-file.xml en log4j2.xml. Log4j2 lo cargará de forma predeterminada sin necesidad de que lo active un perfil de Spring.
Consulte también la página del manual de configuración de Log4j 2:
Log4j2 primero intentará encontrar un archivo llamado log4j2-test.yaml
en el classpath, luego lo mismo para JSON y XML, y finalmente buscará un archivo llamado log4j2.yml
en el classpath.
También puede especificar la ubicación del archivo de configuración de forma explícita.
Como alternativa al uso de perfiles de Spring (que requiere que establezca explícitamente qué perfiles están activos), puede usar un perfil de compilación de Maven para cambiar entre los archivos de configuración log4j2.
aplicación.yml
logging:
config: classpath:$log4j2.config
pom.xml
log4j2.xml
local
log4j2-local.xml
De esta manera, se puede usar un archivo de configuración log4j predeterminado (log4j2.xml) para compilaciones normales.
Y se puede usar un segundo archivo de configuración (log4j2-local.xml) para el desarrollo/prueba local siempre que el proyecto se construya con el local
perfil de construcción (por ejemplo mvn package -Plocal
).
Aquí puedes ver las reseñas y valoraciones de los usuarios
Eres capaz de respaldar nuestra faena ejecutando un comentario y dejando una valoración te damos las gracias.