Spring Boot: ¿Cómo puedo configurar el nivel de registro con application.properties?

Resuelto zeodtr asked hace 10 años • 18 respuestas

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.?

zeodtr avatar Dec 10 '13 09:12 zeodtr
Aceptado

Actualización: a partir de Spring Boot v1.2.0.RELEASE, se aplican las configuraciones en application.propertieso . application.ymlConsulte 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.xmlo logback.xml) al src/main/resourcesdirectorio y configúrelo a su gusto.

Puede habilitar el registro de depuración especificando --debugcuá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"/>     
M. Deinum avatar Dec 10 '2013 07:12 M. Deinum

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=devargumento 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;)).

Richard avatar Aug 02 '2014 09:08 Richard

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
The Gilbert Arenas Dagger avatar May 16 '2017 19:05 The Gilbert Arenas Dagger

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

Hardik Patel avatar Feb 18 '2018 17:02 Hardik Patel

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

Panagiotis Bougioukos avatar Dec 11 '2021 17:12 Panagiotis Bougioukos