内容简介: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 项目持续集成实践(一)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Pro JavaScript Techniques
John Resig / Apress / 2006-12-13 / USD 44.99
Pro JavaScript Techniques is the ultimate JavaScript book for the modern web developer. It provides everything you need to know about modern JavaScript, and shows what JavaScript can do for your web s......一起来看看 《Pro JavaScript Techniques》 这本书的介绍吧!