SpringBoot使用Commons Logging进行全部内部日志记录,但保留底层日志实现。默认提供了Java Util Logging,Log4j2和Logback日志配置。在每种状况下,都预先配置为使用控制台输出,而且还提供了可选的文件输出。(来自官网)html
SpringBoot默认的日志输出以下所示:java
2014-03-05 10:57:51.112 INFO 45469 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/7.0.52
2014-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2014-03-05 10:57:51.253 INFO 45469 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1358 ms
2014-03-05 10:57:51.698 INFO 45469 --- [ost-startStop-1] o.s.b.c.e.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/]
2014-03-05 10:57:51.702 INFO 45469 --- [ost-startStop-1] o.s.b.c.embedded.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
复制代码
输出如下项目:web
Logback中没有FATAL(致命)级别,它被映射到ERROR级别spring
(日志格式来自官网)apache
SpringBoot控制台输出默认支持三种日志级别:ERROR,WARN和INFOapi
若是还想输出别的级别日志,例如DEBUG或TRACE(只能二选一),以下操做:bash
$ java -jar myapp.jar -- debug
说明:使用debug调试模式启动应用程序不会将应用程序配置为使用DEBUG级别记录日志。
复制代码
application.yml文件:oracle
debug: true 复制代码
application.properties文件:app
debug=true 复制代码
若是终端支持ANSI(表示颜色),能够设置彩色输出。ide
application.yml中设置:
# 检查终端是否支持ANSI,是的话就采用彩色输出
spring:
output:
ansi:
enabled: detect
复制代码
application.properties中设置:
# 检查终端是否支持ANSI,是的话就采用彩色输出
spring.output.ansi.enabled=detect
复制代码
SpringBoot默认配置日志只会输出到控制台,并不会记录到文件中,但一般生产环境须要把日志记录到文件中。
配置属性以下:
日志文件在达到10 MB时滚动输出,而且与控制台输出同样,默认状况下会记录ERROR,WARN和INFO级别的日志。可使用logging.file.max-size属性更改大小限制。除非已设置logging.file.max-history属性,不然之前轮换的日志文件将被无限期归档。(来自官网)
注意点:
- 日志记录系统在应用程序生命周期的早期初始化。所以,在经过@PropertySource注解加载的属性文件中找不到日志记录属性。
- 日志记录属性独立于实际的日志记录基础结构。所以,SpringBoot无论理特定的配置密钥(例如Logback的logback.configurationFile)。 (来自官网)
application.yml中设置:
logging:
# 设置相对路径的日志输出文件
file: log/my.log
# 设置日志输出路径,默认会生成log/spring.log日志文件
path: log
logging:
# 设置绝对路径的日志输出文件
file: D:\ideaProjects\SpringBootDemo\log1\mylog1.log
# 设置日志输出路径,默认会生成log/spring.log日志文件
path: log
复制代码
application.properties中设置:
logging.file=log/my.log
logging.path=log
复制代码
配置属性格式:logging.level.*=LEVEL
application.yml中设置:
logging:
level:
# com.example.demo包下全部class以DEBUG级别输出
com.example.demo: DEBUG
# root日志以INFO级别输出
root: INFO
说明:
配置日志级别值大小写都可,例如:设置成debug/info
复制代码
application.properties中设置:
logging.level.com.example.demo=DEBUG
logging.level.root=INFO
说明:
配置日志级别值大小写都可,例如:设置成debug/info
复制代码
刨根问底,死磕本身(选看)
1. 日志级别设置选项
源码中系统日志级别是个枚举类,列出了全部日志级别,以下截图:
根据在application.yml中设置的LEVEL值,匹配系统日志枚举类,最终设置系统相应包下的日志级别。
SpringBoot官网: docs.spring.io/spring-boot…