Spring Boot Logger

基础知识

日志级别

日志级别从低到高:TRACE < DEBUG < INFO < WARN < ERROR < FATAL

如果设置为 WARN ,则低于 WARN 的信息都不会输出。Spring Boot中默认配置ERROR、WARN和INFO级别的日志输出到控制台。

设置输出DEBUG方式

  1. java -jar springTest.jar –debug

  2. 在application.properties中配置debug=true,该属性置为true的时候,核心Logger(包含嵌入式容器、hibernate、spring)
    会输出更多内容,但是你自己应用的日志并不会输出为DEBUG级别。

级别设置

logging.level:日志级别控制前缀,*为包名或Logger名,LEVEL:选项TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF

1
2
logging.level.com.fintend=DEBUG:com.fintend包下所有class以DEBUG级别输出
logging.level.root=WARN:root日志以WARN级别输出

自定义配置

根据不同的日志系统,你可以按如下规则组织配置文件名,就能被正确加载

  1. Logback:logback-spring.xml, logback-spring.groovy, logback.xml, logback.groovy
  2. Log4j:log4j-spring.properties, log4j-spring.xml, log4j.properties, log4j.xml
  3. Log4j2:log4j2-spring.xml, log4j2.xml
  4. JDK (Java Util Logging):logging.properties

logback-spring

Spring Boot官方推荐优先使用带有-spring的文件名作为你的日志配置(如使用logback-spring.xml,而不是logback.xml),
命名为logback-spring.xml的日志配置文件,spring boot可以为它添加一些spring boot特有的配置项(下面会提到)。默认的
命名规则,并且放在 src/main/resources 下面即可

log4j2-spring.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>portfolio</contextName>
<!--输出到控制台 ConsoleAppender-->
<appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
<!--展示格式 layout-->
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>
<pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{64} - %msg%n</pattern>
</pattern>
</layout>
</appender>

<springProfile name="dev">
<logger name="com.six" level="DEBUG">
<appender-ref ref="consoleLog"/>
</logger>

<!--指定最基础的日志输出级别-->
<root level="INFO">
<appender-ref ref="consoleLog"/>
</root>
</springProfile>

<springProfile name="prod">
<logger name="com.six" level="INFO">
<appender-ref ref="consoleLog"/>
</logger>

<!--指定最基础的日志输出级别-->
<root level="WARN">
<appender-ref ref="consoleLog"/>
</root>
</springProfile>
</configuration>

输出日志格式

1
2
3
4
5
18:15:22.148 logback-demo [http-nio-9010-exec-1] INFO  c.e.demo.controller.UserContorller - 日志输出 info
18:15:22.148 logback-demo [http-nio-9010-exec-1] WARN c.e.demo.controller.UserContorller - 日志输出 warn
18:15:22.148 logback-demo [http-nio-9010-exec-1] ERROR c.e.demo.controller.UserContorller - 日志输出 error
18:15:22.148 logback-demo [http-nio-9010-exec-1] INFO c.e.demo.controller.UserContorller - name:inke , age:33
18:15:22.149 logback-demo [http-nio-9010-exec-1] INFO c.e.demo.controller.UserContorller - name:inke , age:33

属性说明

root节点是必选节点,用来指定最基础的日志输出级别,只有一个level属性。

level:用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF,不能设置为INHERITED或者同义词NULL。默认是DEBUG。
可以包含零个或多个元素,标识这个appender将会添加到这个loger。

1
2
3
4
<root level="debug">
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>

自定义配置文件名

1
logging.config=classpath:logging-config.xml

参考链接

https://www.jianshu.com/p/f67c721eea1b