Spring boot Logging configuration and Usage Details, springlogging
This article is basically an official translation document!
Spring boot uses Commons Logging as the internal log system and provides default configurations for Java Util Logging, Log4J2, and Logback. If Starters of spring boot is used, Logback is used to record logs by default.
1. Log format
The default log output format in spring boot is as follows:
10:57:51. 112 INFO 45469 --- [main] org. apache. catalina. core. StandardEngine:
Starting Servlet Engine: Apache Tomcat/7.0.52
10:57:51. 253 INFO 45469 --- [ost-startStop-1] o. a. c. c. C. [Tomcat]. [localhost]. [/]:
Initializing Spring embedded WebApplicationContext
10:57:51. 253 INFO 45469 --- [ost-startStop-1] o. s. web. context. ContextLoader:
Root WebApplicationContext: initialization completed in 1358 MS
10:57:51. 698 INFO 45469 --- [ost-startStop-1] o. s. B. c. e. ServletRegistrationBean:
Mapping servlet: 'dispatcherservlet 'to [/]
10:57:51. 702 INFO 45469 --- [ost-startStop-1] o. s. B. c. embedded. FilterRegistrationBean:
Mapping filter: 'hiddenhttpmethodfilter' to: [/*]
The following items will be output:
1. Date and Time-accurate to milliseconds and sorted by Time
2. Log Level-ERROR, WARN, INFO, DEBUG, TRACE
3. process ID
4. log Content, separated by the "---" Separator
5. Thread name-enclosed in square brackets
6. Log name-usually corresponding to the class name
Note: Logback has no FATAL level (mapped to ERROR)
Ii. Console output
The default log configuration will display the message when writing it to the console. By default, the ERROR, WARN, and INFO messages will be displayed. You can also enable the debug mode when starting, run the following command: java-jar yourapp. jar -- debug
Note: You can also. in the properties configuration file, specify debug = true to enable debug. Once the debug mode is enabled, the console outputs container information, hibernate information, and spring boot information at the same time.
Iii. file output
By default, spring boot only outputs logs to the console, but not to the log file. If you want to write logs to the log file, you must. set logging in the properties configuration file. file or logging. path
Note: The relationship here is or, that is, you configure logging. file or logging. path, and the effect is the same.
The following table shows how to output the configuration file:
Logging. file |
Logging. path |
Example |
Description |
|
|
|
If neither of them is configured, It is output to the Console only. |
Specified file |
|
My. log |
Write the specified log file. The file name can be an exact Location or relative directory |
|
Specified directory |
/Var/log |
Write log files to the specified directory. The directory can be an exact location or a relative directory. |
By default, if the log file size reaches 10 MB, it will be truncated and output to the new log file.
Note: The log configuration is independent from the actual log component. That is to say, if you specify the Configuration Attribute Logback. configurationFile for logback, spring boot will not manage the log component.
Iv. Log Level
All supported log systems can use Spring Environment to specify the log level, such as application. properties, you can use "logging. level. * = LEVEL to specify the log LEVEL. The value of LEVEL can be TRACE, DEBUG, INFO, WARN, ERROR, FATAL, or OFF. The configuration example is as follows:
Logging. level. root = WARN # The root log outputs logging.level.org at the WARN level. springframework. web = DEBUG # org. springframework. logs under the web package output logging.level.org at the DEBUG level. hibernate = ERROR # org. logs in the hibernate package are output at the ERROR level.
If we need to specify the log level of our application, we can use the same method as below:
logging.level.com.chhliu=INFO
In the preceding configuration, "com. chhliu" is the package name of our application.
V. Custom log output format
We can configure the log output format through logging. pattern. file and logging. pattern. level. For example:
logging.pattern.console=%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n logging.pattern.file=%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n
Note: The preceding configuration only applies to Logback.
6. log using Log4j
As mentioned above, we use Logback as the log system by default. What should we do if we want to use Log4j for logging, we need to add the Log4j starter in the pom file and exclude Logback at the same time, as shown below:
<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>
The above is all the content of this article. I hope it will be helpful for your learning and support for helping customers.