微信公众号:一个优秀的废人
若有问题或建议,请后台留言,我会尽力解决你的问题。
如题,今天介绍 springboot 默认日志的配置。前端
默认状况下,Spring Boot 用 Logback 来记录日志,并用 INFO 级别输出到控制台。若是你在日常项目中用过 Spring Boot,你应该已经注意到不少 INFO 级别的日志了。默认日志长这样:java
2019-02-18 22:02:14.907 INFO 23384 --- [ main] org.hibernate.Version : HHH000412: Hibernate Core {5.3.7.Final} 2019-02-18 22:02:14.907 INFO 23384 --- [ main] org.hibernate.cfg.Environment : HHH000206: hibernate.properties not found 2019-02-18 22:02:15.110 INFO 23384 --- [ main] o.hibernate.annotations.common.Version : HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
从上面的日志能够看到,日志输出内容元素具体以下:mysql
Logback 日志框架依赖于 spring-boot-starter-logging 包,但咱们并不须要在 maven 中加入这个依赖,由于 spring-boot-starter其中包含了 spring-boot-starter-logging,该依赖内容就是 Spring Boot 默认的日志框架 logback。算法
在 Spring Boot 中默认配置了 ERROR、WARN 和 INFO 级别的日志输出到控制台。spring
咱们能够经过两种方式切换至 DEBUG 级别:sql
若是你的终端支持ANSI,设置彩色输出会让日志更具可读性。经过在 application.properties 中设置 spring.output.ansi.enabled 参数来支持。springboot
Spring Boot默认配置只会输出到控制台,并不会记录到文件中,可是咱们一般生产环境使用时都须要以文件方式记录。微信
若要增长文件输出,须要在 application.properties 中配置 logging.file 或 logging.path属性。app
logging.file,设置文件,能够是绝对路径,也能够是相对路径。如:logging.file=my.log
logging.path,设置目录,会在该目录下建立spring.log文件,并写入日志内容,如:logging.path=/var/log框架
注:两者不能同时使用,如若同时使用,则只有logging.file生效
默认状况下,日志文件的大小达到 10MB 时会切分一次,产生新的日志文件,默认级别为:ERROR、WARN、INFO
在 Spring Boot 中只须要在 application.properties 中进行配置完成日志记录的级别控制。
配置格式:logging.level.*=LEVEL
logging.level:日志级别控制前缀,*为包名或Logger名
LEVEL:选项 TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF
举例:
logging.level.com.nasus=DEBUG:com.nasus 包下全部 class 以 DEBUG 级别输出
logging.level.root=WARN:root日志以 WARN 级别输出
根据不一样的日志系统,你能够按以下规则组织配置文件名,就能被正确加载:
Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
Log4j2:log4j2-spring.xml, log4j2.xml
JDK (Java Util Logging):logging.properties
Spring Boot 官方推荐优先使用带有 -spring 的文件名做为你的日志配置(如使用 logback-spring.xml,而不是 logback.xml),命名为 logback-spring.xml 的日志配置文件,spring boot 能够为它添加一些 spring boot 特有的配置项(下面会提到)。
默认的命名规则,而且放在 src/main/resources 下面便可
若是你即想彻底掌控日志配置,但又不想用 logback.xml 做为 Logback 配置的名字,application.yml 能够经过 logging.config 属性指定自定义的名字:
logging.config=classpath:logging-config.xml
虽然通常并不须要改变配置文件的名字,可是若是你想针对不一样运行时 Profile 使用不一样的日志配置,这个功能会颇有用。
通常不须要这个属性,而是直接在 logback-spring.xml 中使用 springProfile 配置,不须要 logging.config 指定不一样环境使用不一样配置文件。springProfile 配置在下面介绍。
logback-spring.xml :
<configuration> ... <!-- 测试环境+开发环境. 多个使用逗号隔开. --> <springProfile name="test,dev"> <logger name="com.example.demo.controller" level="DEBUG" additivity="false"> <appender-ref ref="consoleLog"/> </logger> </springProfile> <!-- 生产环境. --> <springProfile name="prod"> <logger name="com.example.demo.controller" level="INFO" additivity="false"> <appender-ref ref="consoleLog"/> </logger> </springProfile> </configuration>
application.yml 增长环境选择的配置 active: dev
spring: profiles: active: dev datasource: url: jdbc:mysql://localhost:3306/test?characterEncoding=utf8 username: root password: 123456
根据 active 的环境,自动采用上面配置的 springProfile 的 logger 日志。
以上 SpringBoot 默认日志的配置教程。最后,对 Python 、Java 感兴趣请长按二维码关注一波,我会努力带给大家价值,若是以为本文对你哪怕有一丁点帮助,请帮忙点好看,让更多人知道。
另外,关注以后在发送 1024 可领取免费学习资料。资料内容详情请看这篇旧文:Python、C++、Java、Linux、Go、前端、算法资料分享