2019-04-21 | spring | UNLOCK

Spring Boot - Logging


Spring Boot 使用Apache 通用日志记录内部所有日志,SpringBoot的默认配置也提供了Java Util Logging,Log4gj2,和Logback的支持,我们也可以配置控制台日志记录以及文件日志记录。
如果你正在使用SpringBoot Starters,Logback将为日志记录提供很好的支持,除此之外,Logback也提供Common Logging,Util Logger,Log 4j以及SLF4J的良好支持。

Log Format

SpringBoot日志格式默认如下图:

控制台日志输出

默认的日志信息将会打印在控制台窗口,”INFO”,”ERROR”,”WARN”日志信息将会打印在日志文件中。
如果你想启动日志DEBUG级别,那么可以在启动应用的时候使用如下命令java -jar demo.jar --debug,你也可以在application.properties文件中添加如下信息:debug=true

文件日志输出

默认的,所有的日志将会打印在控制台而不是写入至文件中,入股哦你想打印日志到文件中,那么你需要在属性配置文件中添加logging.file或者logging.path
你可以指定日志文件路径如下:

logging.path = /var/tmp/
你也可以指定日志文件名
logging.file = /var/tmp/mylog.log
Note: 文件在1-MB后将会回转

日志等级

SpringBoot 支持如下日志等级:”TRACE”,”DEBUG”,”INFO”,”WARN”,”ERROR”,”FATAL”,”OFF”.你可以在配置文件中设置root logger如下:loggin.level.root = WARN

配置Logback

Logback支持基于XML格式的文件来配置SpringBoot日志,日志配置详细信息在logback.xml中,并且logback.xml应该位于类路径下。

  • 你可以配置ROOT level log如下:

    1
    2
    3
    4
    5
    <?xml version = "1.0" encoding = "UTF-8"?>
    <configuration>
    <root level = "INFO">
    </root>
    </configuration>
  • 你可以配置控制台输出,如下:

    1
    2
    3
    4
    5
    6
    7
    <?xml version = "1.0" encoding = "UTF-8"?>
    <configuration>
    <appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender"></appender>
    <root level = "INFO">
    <appender-ref ref = "STDOUT"/>
    </root>
    </configuration>
  • 你可以配置文件输出,如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version = "1.0" encoding = "UTF-8"?>
    <configuration>
    <appender name = "FILE" class = "ch.qos.logback.core.FileAppender">
    <File>/var/tmp/mylog.log</File>
    </appender>
    <root level = "INFO">
    <appender-ref ref = "FILE"/>
    </root>
    </configuration>
  • 你可以配置日志输出格式,如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?xml version = "1.0" encoding = "UTF-8"?>
    <configuration>
    <appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender">
    <encoder>
    <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
    </encoder>
    </appender>

    <appender name = "FILE" class = "ch.qos.logback.core.FileAppender">
    <File>/var/tmp/mylog.log</File>
    <encoder>
    <pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
    </encoder>
    </appender>

    <root level = "INFO">
    <appender-ref ref = "FILE"/>
    <appender-ref ref = "STDOUT"/>
    </root>
    </configuration>

下面代码将展示如何添加slf4j logger到SpringBoot主文件中:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class);

public static void main(String[] args) {
logger.info("this is a info message");
logger.warn("this is a warn message");
logger.error("this is a error message");
SpringApplication.run(DemoApplication.class, args);
}
}

评论加载中