Saltar al contenido

Spring Profiles, diferentes configuraciones de Log4j2

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *