Spring Boot: ¿Cómo puedo configurar el nivel de registro con application.properties?
Esta es una pregunta muy simple, pero no encuentro información.
(Quizás mi conocimiento sobre los marcos de Java sea muy deficiente)
¿Cómo puedo configurar el nivel de registro con application.properties?
¿Y la ubicación del archivo de registro, etc.?
Actualización: a partir de Spring Boot v1.2.0.RELEASE, se aplican las configuraciones en application.properties
o . application.yml
Consulte la sección Niveles de registro de la guía de referencia.
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
Para versiones anteriores de Spring Boot no es posible. Simplemente tiene que usar la configuración normal para su marco de registro (log4j, logback) para eso. Agregue el archivo de configuración apropiado ( log4j.xml
o logback.xml
) al src/main/resources
directorio y configúrelo a su gusto.
Puede habilitar el registro de depuración especificando --debug
cuándo iniciar la aplicación desde la línea de comandos.
Spring Boot también proporciona un buen punto de partida para iniciar sesión para configurar algunos valores predeterminados, colorear, etc. el archivo base.xml que simplemente puede incluir en su archivo logback.xml. (Esto también se recomienda desde el logback.xml predeterminado en Spring Boot.
<include resource="org/springframework/boot/logging/logback/base.xml"/>
Puedes hacerlo usando tu aplicación.properties.
logging.level.=ERROR
-> Establece el nivel de registro raíz en error
...
logging.level.=DEBUG
-> Establece el nivel de registro raíz en DEBUG
logging.file=${java.io.tmpdir}/myapp.log
-> Establece la ruta absoluta del archivo de registro en TMPDIR/myapp.log
Un conjunto predeterminado sensato de application.properties con respecto al registro usando perfiles sería: propiedades.de.aplicación:
spring.application.name=<your app name here>
logging.level.=ERROR
logging.file=${java.io.tmpdir}/${spring.application.name}.log
propiedades-dev.de la aplicación:
logging.level.=DEBUG
logging.file=
Cuando desarrolla dentro de su IDE favorito, simplemente agrega un -Dspring.profiles.active=dev
argumento como VM a la configuración de ejecución/depuración de su aplicación.
Esto le dará un error solo al iniciar sesión en producción y depurar el registro durante el desarrollo SIN escribir el resultado en un archivo de registro. Esto mejorará el rendimiento durante el desarrollo (y ahorrará a las unidades SSD algunas horas de funcionamiento;)).
La forma correcta de establecer el nivel de registro raíz es mediante la propiedad logging.level.root
. Consulte la documentación , que se ha actualizado desde que se formuló esta pregunta originalmente.
Ejemplo:
logging.level.root=WARN
Si está en Spring Boot, puede agregar directamente las siguientes propiedades en el archivo application.properties para establecer el nivel de registro, personalizar el patrón de registro y almacenar registros en el archivo externo.
Estos son diferentes niveles de registro y su orden desde mínimo << máximo.
APAGADO << FATAL << ERROR << ADVERTENCIA << INFORMACIÓN << DEPURACIÓN << SEGUIMIENTO << TODO
# To set logs level as per your need.
logging.level.org.springframework = debug
logging.level.tech.hardik = trace
# To store logs to external file
# Here use strictly forward "/" slash for both Windows, Linux or any other os, otherwise, its won't work.
logging.file=D:/spring_app_log_file.log
# To customize logging pattern.
logging.pattern.file= "%d{yyyy-MM-dd HH:mm:ss} - %msg%n"
Pase por este enlace para personalizar su registro de manera más vívida.
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
Según la documentación, puede tener diferentes niveles de registro según los paquetes de Java .
logging.level.com.mypackage.myproject=WARN
logging.level.org.springframework=DEBUG
logging.level.root=INFO
Esto significaría que
- Para su paquete personalizado se aplicará el nivel de registro
com.mypackage.myproject
WARN - Para el paquete Spring Framework se aplicaría el nivel de registro
org.springframework
DEBUG - Para todos los demás paquetes se aplicaría el nivel de registro de INFORMACIÓN
También puede agrupar diferentes paquetes de Java e indicarle al sistema que use el mismo nivel de registro para todos los paquetes del grupo en una sola línea.
En el ejemplo anterior podrías hacer
logging.level.root=INFO
logging.level.org.springframework=DEBUG
logging.group.myCustomGroup = com.mypackage.myproject, com.otherpackage.otherproject, com.newpackage.newproject
logging.level.myCustomGroup=WARN
Esto significaría que los paquetes
- com.mipaquete.miproyecto
- com.otropaquete.otroproyecto
- com.nuevopaquete.nuevoproyecto
todos tendrían aplicado el nivel de registro WARN