starter pattern mkyong logger how example logging spring-boot

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



spring logging example (10)

Esta es una pregunta muy simple, pero no puedo encontrar información.
(Tal vez mi conocimiento sobre los marcos de Java es muy deficiente)

¿Cómo puedo configurar el nivel de registro con application.properties?
¿Y la ubicación del archivo de registro, etc?


Asegurarse de que la sugerencia de Dave Syer reciba algo de amor, porque agregar debug=true a application.properties habilitará el registro de depuración.


En caso de eclipse IDE y su proyecto es experto, recuerde limpiar y construir el proyecto para reflejar los cambios.


En caso de que desee utilizar un marco de registro diferente, log4j, por ejemplo, encontré que el método más sencillo es deshabilitar el inicio de sesión de Spring Boot e implementar el suyo propio. De esa manera puedo configurar todos los niveles 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 tienes la primera dependencia y solo necesitas las otras dos. Tenga en cuenta que este ejemplo solo cubre log4j.
Eso es todo, ahora ya está todo listo para configurar el registro de arranque dentro de su archivo de configuración de log4j!


La forma correcta de establecer el nivel de registro raíz se utiliza la propiedad logging.level.root . Consulte la documentation , que se ha actualizado desde que se hizo esta pregunta originalmente.

Ejemplo:

logging.level.root=WARN


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 debe hacer al registro es establecer los niveles de varios registradores, entonces 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 precisos de un sistema de registro, debe utilizar el formato de configuración nativo compatible con el sistema de registro en cuestión. Por defecto, Spring Boot toma 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 usando la propiedad "logging.config".


Puede hacerlo utilizando su application.properties.

logging.level.=ERROR -> Establece el nivel de registro de la raíz en error
...
logging.level.=DEBUG -> Establece el nivel de registro a raíz de depuración

logging.file=${java.io.tmpdir}/myapp.log -> Establece la ruta del archivo de registro absoluto a TMPDIR / myapp.log

Un buen conjunto predeterminado de application.properties con respecto al registro mediante 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 como argumento de VM a la configuración de ejecución / depuración de su aplicación.

Esto le dará un error solo en el registro de producción y depuración durante el desarrollo SIN escribir la salida en un archivo de registro. Esto mejorará el rendimiento durante el desarrollo (y ahorrará unidades de SSD durante algunas horas de funcionamiento;)).


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 el loback-spring.xml, ingrese así:

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


Si está en Spring Boot, entonces 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 el mínimo << máximo.

OFF << << FATAL ERROR << << WARN información << 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 de manera más vívida.

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-logging.html


Supongamos que su aplicación tiene el nombre del paquete como com.company.myproject . Entonces se 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 = DEBUG

logging.level.org.springframework.web = DEBUG y logging.level.org.hibernate = DEBUG establecerá el nivel de registro para las clases de web de Spring Framework e Hibernate solamente.

Para configurar la ubicación del archivo de registro use

logging.file = /home/ubuntu/myproject.log


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 puedes. Usted simplemente tiene que utilizar 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 directorio src/main/resources y configúrelo a su gusto.

Puede habilitar el registro de depuración mediante la especificación de --debug al iniciar la aplicación desde la línea de comandos.

Spring Boot también proporciona un buen punto de inicio 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 a partir del logback.xml predeterminado en Spring Boot.

<include resource="org/springframework/boot/logging/logback/base.xml"/>