日志格式
Spring Boot默认的日志输出格式如下:
输出的节点(items)如下:
- 日期和时间 - 精确到毫秒,且易于排序。
- 日志级别 - ERROR , WARN , INFO , DEBUG 或 TRACE 。
- Process ID。
- — 分隔符,用于区分实际日志信息开头。
- 线程名 - 包括在方括号中(控制台输出可能会被截断)。
- 日志名 - 通常是源class的类名(缩写)。
- 日志信息。
注 Logback没有 FATAL
级别,它会映射到 ERROR
。
控制台输出
默认的日志配置会在写日志消息时将它们回显到控制台,级别为 INFO
, 所以ERROR
, WARN
和INFO
的消息会被记录。
DEBUG级别
有两种方式可以启用DEBUG级别的日志输出,分别是
Color-coded输出
如果终端支持ANSI
,Spring Boot将使用彩色编码(color output)输出日志以增强可读性,可以将 spring.output.ansi.enabled
设置为一个支持的值来覆盖默认设置, 其可配置的值有三个,always
, detect
, never
。输出的默认色彩编码如下:
Level |
Color |
FATAL |
Red |
ERROR |
Red |
WARN |
Yellow |
INFO |
Green |
DEBUG |
Green |
TRACE |
Green |
示例:
还可以通过Spring Tool Suit的启动配置来设置ASCI输出。
文件输出
默认情况下,Spring Boot只会将日志记录到控制台,而不写进日志文件,如果需要,可以设置 logging.file 或 logging.path 属性(例如 application.properties )。
logging.file |
logging.path |
示例 |
描述 |
(none) |
(none) |
|
只记录到控制台 |
Specific file |
(none) |
my.log |
写到特定的日志文件,名称可以是精确的位置或相对于当前目录 |
(none) |
Specific directory |
/var/log |
写到特定目录下的 spring.log 里,名称可以是精确的位置或相对于当前目录 |
日志文件每达到10M就会被分割,跟控制台一样,默认记录 ERROR ,WARN 和 INFO 级别的信息。
日志级别
有Spring Boot支持的日志系统支持以下级别日志输出TRACE , DEBUG , INFO , WARN , ERROR , FATAL , OFF
以下是 application.properties 示例:
自定义日志配置
通过将相应的库添加到classpath可以激活各种日志系统,然后在classpath根目录下提供合适的配置文件可以进一步定制日志系统,配置文件也可以通过Spring Environment 的 logging.config
属性指定。
使用 org.springframework.boot.logging.LoggingSystem
系统属性可以强制Spring Boot使用指定的日志系统,该属性值需要是 LoggingSystem 实现类的全限定名,如果值为 none
,则彻底禁用Spring Boot的日志配置。
由于日志初始化早于 ApplicationContext
的创建,所以不可能通过 @PropertySources
指定的Spring @Configuration
文件控制日志,系统属性和Spring Boot外部化配置可以正常工作。
以下文件会根据你选择的日志系统进行加载:
日志系统 |
定制配置 |
Logback |
logback-spring.xml , logbackspring.groovy , logback.xml 或 logback.groovy |
Log4j |
log4j.properties 或 log4j.xml |
Log4j2 |
log4j2-spring.xml 或 log4j2.xml |
JDK (Java Util Logging) |
logging.properties |
logback扩展
Spring Boot包含很多有用的Logback扩展,可以在 logback-spring.xml
配置文件中使用它们。
注: 不能在标准的 logback.xml
配置文件中使用扩展,因为它加载的太早了,不过可以使用 logback-spring.xml
,或指定 logging.config 属性。
实验
创建一个Maven项目
pom.xml
App.java
application.yml
项目结构
参考资料
Spring Boot Reference Guide : http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/