Skip to content

26.日志

Java Util Logging, Log4J2, and Logback提供了默认配置(输出到控制台)。

如果你使用了“Starters”,会使用Logback作为你的日志系统。

1. 控制台输出

日志级别有五种: ERROR, WARN, INFO, DEBUG, or TRACE.

默认输出日志的级别有 ERROR-level, WARN-level, and INFO-level。

可在启动应用时添加选项改变:

$ java -jar myapp.jar --debug

也可以在 application.properties文件中改变:

<debug/trace>=true

2. 文件输出

使用logging.file or logging.path 属性

注意:日志系统在应用的生命周期的早期初始化,故不能通过使用@PropertySource 注解找到配置文件中的日志属性。

3. 日志级别

所有支持的日志系统都能在spring的环境中设置日志级别。

logging.level.<logger-name>=<level>level is one of TRACE, DEBUG, INFO, WARN, ERROR, FATAL, or OFF.

root logger可通过 logging.level.root配置。例:

logging.level.root=WARN
logging.level.org.springframework.web=DEBUG
logging.level.org.hibernate=ERROR

4. 日志组

可将相关的logger组成一个组,对组进行级别设置。

例,定义“tomcat”组,改变其日志级别:

logging.group.tomcat=org.apache.catalina, org.apache.coyote, org.apache.tomcat
logging.level.tomcat=TRACE

springboot预置了两个组:

Name Loggers
web org.springframework.core.codec, org.springframework.http, org.springframework.web
sql org.springframework.jdbc.core, org.hibernate.SQL

5. 自定义日志配置

通过引入日志系统的jar包可激活多种日志系统。

例,使用log4j2来作为日志系统:1.排除“starter”中的日志;2.导入log4j2的包:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <!--使用log4j2需要将spring-boot-starter-logging排除-->
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

通过定义 logging.config属性来指定配置文件。

下表是可识别的文件:

Logging System Customization
Logback logback-spring.xml, logback-spring.groovy, logback.xml, or logback.groovy
Log4j2 log4j2-spring.xml or log4j2.xml
JDK (Java Util Logging) logging.properties

推荐使用 -spring变体。