Spring Boot Logging
In this tutorial, we will be discussing about the logging options available in Spring boot.
Spring Boot File Logging:
It is essential to keep the track of ongoing activity in any application when its running and performing some action and the most efficient way of doing so is via logging. Logs help us understand in better what is happening in the application. Logs can also help us to track the performance of our application and helps us to understand where is the scope of optimization. They can also be sent to some other dedicated server for further processsing and analysis. It can be enabled by adding simple properties in application.properties.
logging.path=D:
The above property enables a default file logging in D drive under the name of spring which is created automatically.
Spring Boot Console Logging:
This enables logging on the console and notice the code below. We need to follow the below procedure using slf4j which is configured by spring boot.
@SpringBootApplication
public class Application {
public static void main(String a[]){
// initialise the logger
Logger logger = LoggerFactory.getLogger(Application.class);
// use the logger
logger.info("Application about to start");
SpringApplication.run(Application.class, a);
}
}
The above figure displays the console logging before the application launch. It displays the time, thread name and the message. The spring boot auto configures the org.slf4j.Logger
so, it can be used as shown in the above code.
We can also use properties in application.properties as follows. For example, if you want to see the logs for internal springframework functioning, you can do so by adding the following property:
logging.level.org.springframework=debug
The above property allows to run the spring framework in DEBUG mode which means we will be able to see the autowiring of instances done by spring and the auto-configuration report generated for us.
The above figure displays the autowiring description of the instances during application launch.
We can also change the pattern of logs by specifying few properties in application.properties. In order to change the logging pattern of console, use logging.pattern.console
property and to change the logging pattern of file, use logging.pattern.file
property.
# Logging pattern for the console
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %msg%n
# Logging pattern for file
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
The logging level can be one of TRACE
, DEBUG
, INFO
, WARN
, ERROR
, FATAL
, OFF
. The most commonly used logging levels are:
INFO: used for basic information logging
DEBUG: used for logging additional information helpful in application debugging
ERROR: used for logging error conditions.
Conclusion: In this tutorial, we have seen the logging of the spring boot application which is of the crucial importance especially in the production environment.