Respuestas:
Actualización: a partir de Spring Boot v1.2.0.RELEASE, se aplica la configuración application.properties
o se application.yml
aplica. 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 puede. 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
al iniciar la aplicación desde la línea de comandos.
Spring Boot también proporciona un buen punto de partida para el inicio de 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"/>
application.properties
o se application.yml
aplica, según respondió Richard (módulo :
o =
problema --- el colon parece funcionar para mí).
Puede hacerlo utilizando su application.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 a TMPDIR / myapp.log
Un conjunto predeterminado de aplicaciones.propiedades sensatas con respecto al registro utilizando perfiles sería: application.properties:
spring.application.name=<your app name here>
logging.level.=ERROR
logging.file=${java.io.tmpdir}/${spring.application.name}.log
application-dev.properties:
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á error solo al iniciar sesión en la producción y el registro de depuración durante el desarrollo SIN escribir el resultado en un archivo de registro. Esto mejorará el rendimiento durante el desarrollo (y ahorrará unidades SSD algunas horas de operación;)).
logging.level.:DEBUG
spring-boot 1.4.0
: logging.level.=DEBUG
hará que la aplicación no se inicie y obtenga un error:java.lang.ClassCircularityError: java/util/logging/LogRecord
logging.level.
es solo un atajo sintáctico conveniente para logging.level.root
, que podría preferirse como (1) menos propenso a confundirse con un error tipográfico, (2) potencialmente más explícito y (3) trabajando con el =
signo de asignación, que proporciona una mayor coherencia general al archivo de configuración.
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 hizo originalmente esta pregunta.
Ejemplo:
logging.level.root=WARN
Supongamos que su aplicación tiene el nombre del paquete como com.company.myproject
. Luego puede establecer el nivel de registro para las clases dentro de su proyecto como se indica a continuación en los archivos application.properties
logging.level.com.company.myproject = DEPURACIÓN
logging.level.org.springframework.web = DEBUG
y logging.level.org.hibernate = DEBUG
establecerá el nivel de registro para las clases de Spring framework web e Hibernate únicamente.
Para configurar la ubicación del archivo de registro use
logging.file = /home/ubuntu/myproject.log
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 de mínimo << máximo.
OFF << FATAL << ERROR << WARN << INFO << DEBUG << TRACE << ALL
# 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 más vívidamente.
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html
En caso de que desee utilizar un marco de registro diferente, log4j, por ejemplo, encontré que el enfoque más fácil es desactivar el registro propio de Spring Boots e implementar el suyo. De esa manera puedo configurar cada nivel de registro dentro de un archivo, log4j.xml (en mi caso).
Para lograr esto, simplemente tiene que agregar esas líneas a su pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
Probablemente ya tenga la primera dependencia y solo necesite las otras dos. Tenga en cuenta que este ejemplo solo cubre log4j.
¡Eso es todo, ahora está listo para configurar el registro para el arranque dentro de su archivo de configuración log4j!
log4j.properties
.
Puede intentar establecer el nivel de registro en DEPURAR, mostrará todo al iniciar la aplicación
logging.level.root=DEBUG
Para los registros: la documentación oficial , como para Spring Boot v1.2.0.RELEASE y Spring v4.1.3.RELEASE:
Si el único cambio que necesita realizar en el registro es establecer los niveles de varios registradores, puede hacerlo en application.properties utilizando el prefijo "logging.level", por ejemplo
logging.level.org.springframework.web: DEBUG
logging.level.org.hibernate: ERROR
También puede establecer la ubicación de un archivo para iniciar sesión (además de la consola) usando "logging.file".
Para configurar los ajustes más específicos de un sistema de registro, debe usar el formato de configuración nativo compatible con el sistema de registro en cuestión. De forma predeterminada, Spring Boot recoge la configuración nativa de su ubicación predeterminada para el sistema (por ejemplo, classpath: logback.xml para Logback), pero puede establecer la ubicación del archivo de configuración utilizando la propiedad "logging.config".
Si desea establecer más detalles, agregue un nombre de archivo de configuración de registro "logback.xml" o "logback-spring.xml".
en su archivo application.properties, ingrese así:
logging.config: classpath:logback-spring.xml
en loback-spring.xml, entrada como esta:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="ROOT_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>sys.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/system.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<appender name="BUSINESS_APPENDER" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>TRACE</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
<file>business.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_DIR}/${SYSTEM_NAME}/business.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>500MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%-20(%d{yyy-MM-dd HH:mm:ss.SSS} [%X{requestId}]) %-5level - %logger{80} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="{project-package-name}" level="TRACE">
<appender-ref ref="BUSINESS_APPENDER" />
</logger>
<root level="INFO">
<appender-ref ref="ROOT_APPENDER" />
</root>
</configuration>
Las respuestas existentes son geniales. Solo quiero compartir con ustedes una nueva función de arranque de primavera que permite agrupar registros y establecer el nivel de registro en todo el grupo.
Ejemplo de los documentos:
logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
logging.level.tomcat=TRACE
Es una buena característica que brinda más flexibilidad.
En mi configuración actual, lo tengo definido en application.yaml así:
logging:
level:
ROOT: TRACE
Estoy usando spring-boot: 2.2.0.RELEASE. Puede definir cualquier paquete que debería tener el nivel TRACE como ese.
en el proyecto de arranque de primavera podemos escribir logging.level.root = WARN pero aquí el problema es que tenemos que reiniciar nuevamente, incluso agregamos dependencia de devtools, en el archivo de propiedades si se modifica cualquier valor no será autodetectable, por esta limitación llegué a saber la solución i, e podemos agregar un actuador en pom.xml y pasar el nivel del registrador como se muestra a continuación en el cliente cartero en la barra de URL http: // localhost: 8080 / loggers / ROOT o http: // localhost: 8080 / loggers / com .mycompany y en el cuerpo puedes pasar el formato json como abajo
{
"configuredLevel": "WARN"
}
En caso de eclipse IDE y su proyecto es maven, recuerde limpiar y construir el proyecto para reflejar los cambios.
Con Springboot 2 puede establecer el Nivel de registro raíz con una Variable de entorno como esta:
logging.level.root=DEBUG
O puede establecer un registro específico para paquetes como este:
logging.level.my.package.name=TRACE
LOGGING_LEVEL_ROOT=DEBUG
usando la sintaxis de camello
Settings
->Config Vars
establecerlogging.level.com.yourpackage
en el nivel deseado (INFORMACIÓN, ERROR, DEPURACIÓN).