Spring Boot默认使用的是Logback这个日志框架,一般而言,使用默认的就足够了,如果读者不习惯的话,只需要更换对应框架的Starter就足够了。
Spring Boot的默认输出格式如下:
2019-03-27 12:29:52.994 INFO 13334 --- [ main] com.boot.demo.BootApplication : Starting BootApplication on fangjiaxindeMacBook-Pro.local with PID 13334 (/Volumes/Elements/work/spring-boot/chapter3/out/production/classes started by ivan in /Volumes/Elements/work/spring-boot/chapter3)
2019-03-27 12:29:52.999 INFO 13334 --- [ main] com.boot.demo.BootApplication : No active profile set, falling back to default profiles: default
2019-03-27 12:29:54.166 INFO 13334 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2019-03-27 12:29:54.189 INFO 13334 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2019-03-27 12:29:54.189 INFO 13334 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/9.0.13
输出内容:
内容 | 注释 |
---|---|
日期时间 | 精确到毫秒,易于排序 |
日志级别 | ERROR,WARN,INFO,DEBUG,TRACE |
进程号 | |
间隔符 | 用’—'标识开始输出日志信息 |
进程名 | 方括号括起来(可能会截断控制台输出) |
日志实例名称 | 通常是输出日志的类名 |
日志信息 |
Logback没有FATAL级别,FATAL级别被映射到ERROR级别了。
Spring Boot默认将所有写入文件的日志信息输出到控制台。这些日志信息的级别包括:ERROR,WARN,INFO。如果需要DEBUG级别的日志,可以在启动项目时加上—debug
参数
java -jar myapp.jar --debug
或者在application.yml中加入debug=true
。
当启动debug模式后,只有一些核心部分(Container,Hibernate,Spring Boot)才会输出更多的日志信息,其它非核心部分还是保持原级别不变。
或者,你也可以通过在启动时加上—trace
(或者在application.yml中加入trace=true
)使用trace模式。trace模式可以让一些核心类(Container,Hibernate schema generation,Spring)输出Trace级别的日志。
假如我们想在自己的位置输出这些级别的日志,则需要一些额外的配置。
log:
level:
包名 : 日志级别
如果你的环境支持ANSI
编码的话,为日志加上点颜色,可能会提高日志的可读性。可以在配置文件中设置 spring.output.ansi.enabled
来改变默认值
日志级别 - 颜色映射表
级别 | 颜色 |
---|---|
FATAL,ERROR | 红色 |
WARN | 黄色 |
INFO,DEBUG,TRACE | 绿色 |
如果想改变日志默认色值,则可以通过%clr
来转换。
%clr(%d {yyyy-MM-dd HH:mm:ss.SSS}){yellow}
比如,以上的代码,可以使得文字变为黄色。
默认情况下,Spring Boot仅记录到控制台,不会写入日志文件。如果除了控制台输出之外还要编写日志文件,则需要在application.yml
文件中设置 logging.file
或logging.path
属性。
**logging.file:**输出到指定文件。
logging.path:输出到指定路径。
在Spring Boot中,默认在日志文件达到10MB时,会做切割。想改变这个大小的话,可以通过logging.file.max-size
来操作。而且默认情况下,Spring Boot是不会主动删除日志文件的,除非使用logging.file.max-history
来限定保存天数。
在Spring Boot中,我们可以通过logging.config
参数来指定我们自己的配置文件。
根据我们使用的日志框架不同,Spring Boot会加载的日志文件也不一样。
日志框架 | 配置文件 |
---|---|
Logback | logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy |
Log4j2 | Log4j2-spring.xml,log4j2.xml |
JDK(Java Util Logging) | Logging.properties |