内容简介:SpringBoot使用Commons Logging进行所有内部日志记录,但保留底层日志实现。默认提供了Java Util Logging,SpringBoot默认的日志输出如下所示:输出以下项目:
SpringBoot使用Commons Logging进行所有内部日志记录,但保留底层日志实现。默认提供了Java Util Logging, Log4j2 和Logback日志配置。在每种情况下,都预先配置为使用控制台输出,并且还提供了可选的文件输出。(来自官网)
日志格式
SpringBoot默认的日志输出如下所示:
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: [/*] 复制代码
输出以下项目:
- 日期和时间:毫秒精度并且容易排序
- 日志级别:ERROR, WARN, INFO, DEBUG, TRACE
- 进程ID
- --- 分隔符来区分实际日志的开始
- 线程名:括在方括号中(可能会被截断)
- 日志记录器名:这通常是源类名(通常缩写)
- 日志信息
Logback中没有FATAL(致命)级别,它被映射到ERROR级别
( 日志格式 来自 官网 )
控制台输出
SpringBoot控制台输出默认支持三种日志级别:ERROR,WARN和INFO
如果还想输出别的级别日志,例如DEBUG或TRACE(只能二选一),如下操作:
- 启动应用程序时,增加--debug或--trace标志
$ java -jar myapp.jar -- debug 说明:使用debug调试模式启动应用程序不会将应用程序配置为使用DEBUG级别记录日志。 复制代码
- 在application.yml中(或application.properties中)增加debug: true或trace: true(或debug=true/trace=true)
application.yml文件:
debug: true 复制代码
application.properties文件:
debug=true 复制代码
多彩输出:
如果终端支持ANSI(表示颜色),可以设置彩色输出。
application.yml中设置:
# 检查终端是否支持ANSI,是的话就采用彩色输出 spring: output: ansi: enabled: detect 复制代码
application.properties中设置:
# 检查终端是否支持ANSI,是的话就采用彩色输出 spring.output.ansi.enabled=detect 复制代码
文件输出
SpringBoot默认配置日志只会输出到控制台,并不会记录到文件中,但通常生产环境需要把日志记录到文件中。
配置属性如下:
- logging.file: 设置日志输出文件,绝对路径或相对路径都可以。
- logging.path: 设置日志输出目录,会在该目录下创建spring.log文件,并写入日志内容。
日志文件在达到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
- logging.level: 日志级别控制前缀,*为包名或Logger名
- LEVEL: 选项TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF
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…
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 持续集成你的PHP项目
- 持续集成你的PHP项目
- 为现有 iOS项目集成 Flutter
- React项目集成Immutable.js
- express项目集成mocha测试框架
- Practice - iOS 项目持续集成实践(一)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。