es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ejecución de línea de comandos de Spring Boot sin utilizar logback-spring.xml.

Esta aplicación funciona bien en IntelliJ y crea los archivos de registro según las configuraciones, sin embargo, cuando se lanza la aplicación desde la línea de comandos, no utiliza el archivo logback-spring.xml y en su lugar crea el archivo tmp/spring.log, que parece provenir del archivo logback/base.xml de Spring.
He pasado un par de días intentando solucionar este problema, pero hasta ahora nada parece funcionar y otras preguntas no abordan el problema subyacente, agradezco su ayuda.

Estoy lanzando la aplicación de la siguiente manera:

java -jar abc.jar -Dspring.profiles.active=test

Puedo ver que logback-spring.xml está presente dentro de abc.jar en:

BOOT-INF/classes/logback-spring.xml

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Según la información proporcionada, parece que el problema está relacionado con el classpath que se utiliza al lanzar la aplicación desde la línea de comandos. Es posible que el classpath utilizado no incluya el archivo logback-spring.xml presente dentro del archivo abc.jar. Esto podría estar causando que la aplicación use el archivo logback/base.xml por defecto y cree el archivo tmp/spring.log en lugar de utilizar la configuración personalizada especificada en logback-spring.xml.

    Para resolver este problema, puedes intentar especificar el classpath de forma explícita al lanzar la aplicación desde la línea de comandos. Puedes hacer esto utilizando la opción -cp o -classpath seguida de la ruta al directorio que contiene el archivo logback-spring.xml y la ruta al archivo abc.jar.

    Por ejemplo, suponiendo que el archivo logback-spring.xml se encuentra en el directorio /myapp/config y el archivo abc.jar se encuentra en el directorio /myapp/, puedes lanzar la aplicación utilizando el siguiente comando:

    java -jar abc.jar -Dspring.profiles.active=test -cp /myapp:/myapp/config

    Esto asegurará que el archivo logback-spring.xml se incluya en el classpath y sea utilizado por la aplicación para el registro de eventos.

    Si especificar el classpath de forma explícita no resuelve el problema, puedes intentar habilitar el registro de depuración para obtener más información sobre lo que ocurre al lanzar la aplicación. Puedes hacer esto añadiendo la siguiente configuración a tu archivo logback-spring.xml:

    Esto habilitará el registro de depuración para la clase PropertiesLauncher, que es responsable de lanzar la aplicación desde el archivo jar ejecutable. Luego puedes revisar los registros para ver si hay errores o advertencias relacionados con el classpath o problemas de configuración que podrían estar causando que la aplicación no utilice el archivo logback-spring.xml.

    ¡Esperamos que esto ayude a resolver tu problema con el registro de eventos utilizando la configuración logback-spring.xml en tu aplicación Java!

Comments are closed.