How to set Logging Level with application.properties in Spring Boot

The logging level of the spring boot application is set using the logging configuration in the application.properties file. The spring boot logging framework enables a configuration that lets you change the logging level of the application.

The spring boot logging level allow the application to log in different log levels. By default, the logging level is configured with INFO. The information and above level logs will be shown in the console window or in a log file. The logging level can be modified at the level of the java package or root level.

Spring Boot also includes a good starting point for logback to customise some of the defaults that you can easily use in the logback.xml file. Logging details can be configured in the xml format with Logback.xml. Logback.xml provides high flexibility to customise logging package, level, pattern, file appender, etc.



Available Logging Levels

There are seven types of logging levels available in the spring boot logging framework. Logging level works as a relative level. If the logging level is set to info, info logs and above level logs will be seen. In this scenario, all INFO, WARN, ERROR, FATAL logs will be seen.

If the logs are not interested in any of the packages, the logging level is set to OFF. Except that package, the logs will be written.

TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF


Logging at ROOT Level

Logging at the root level configuration can be extended to the whole application. This logging level would extend to both java packages and jar files. This logs are typically very large in volume. The root level log is usually configured with the WARN level to restrict the logs to be created at the root level.

logging.level.root=WARN
logging.level.web=DEBUG
logging.level.sql=DEBUG


Logging at Spring Boot Framework Level

Spring boot framework files will be included in the package starting with org.springframework. If the logging level is modified using this package, the logs of the spring boot framework will be displayed at the configured logging level.

logging.level.org.springframework=DEBUG
logging.level.org.springframework.web=DEBUG


Logging at Hibernate Level

The most important logs in the spring boot framework are to debug the hibernate level to understand the execution queries. The generated sql and parameter values are printed using hibernate logs. Setting the hibernate logging level is critical for the spring boot application to match the number of logs and log information.

The first two configurations are set using the Java Persistence API. The configuration below sets the hibernate logging level for printing the generated sql and the parameters. Each parameter will be printed in a separate log.

spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
logging.level.org.hibernate=DEBUG
logging.level.org.hibernate.SQL=DEBUG
logging.level.org.hibernate.type.descriptor.sql=DEBUG


Logging at Application Package Level

The spring boot application has been created with the custom package name. The logging level can be changed for the application package level. The logs within the custom package will be application for the logging level configuration. For each package name, the logging level may be configured differently. If the logging level is set in the root package, it will be applied to all subpackages.

application.properties

logging.level.com.yawintutor=DEBUG

You can configure the logging level in the Logback configuration file using the logger tag. The name in the logger tag contains the name of the package. The level in the logging tag contains the logging level.

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
...........
    <logger name="com.yawintutor" level="DEBUG" additivity="false">
        <appender-ref ref="RollingFile" />
        <appender-ref ref="Console" />
    </logger>
...........
</configuration>

You can set the logging level in various formats. Spring boot framework accepts multiple configuration options, such as application.properties, application.yml, command line argument, log4j.xml, logback.xml. Spring boot supports configuring the logging level using the spring boot logging framework apis.



Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *