spring boot日志框架
-
spring内部日志框架JCL
-
spring-boot-starter-logging默认slf4j+logback
<dependencies> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <scope>compile</scope> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-to-slf4j</artifactId> <scope>compile</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jul-to-slf4j</artifactId> <scope>compile</scope> </dependency> </dependencies>
-
slf4j相当于接口,logback作为实现,可以选择配置不同的日志实现,统一由slf4j输出
-
替换日志实现
- spring-boot-starter-web、spring-boot-starter中剔除logback,导入其他日志框架
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <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> <version>2.3.0.RELEASE</version> </dependency>
-
spring boot默认输出root级别:输出所有日志中info级别以上日志,因此debug级别必须显式配置
logback配置
-
logback相比log4j,没有FATAL级别,该级别并入ERROR
-
application.yml配置:logback日志格式设置
logging: pattern: console: '%d{yyyy-MM-dd HH:mm:ss}|%cyan(${spring.application.name})|%highlight(%-5level)|%boldYellow([%t]) |%magenta(%logger{64}) |%X{sahara-log-id} |%msg%n' file: '%d{yyyy-MM-dd HH:mm:ss}|${spring.application.name}|%-5level|[%t] |%logger{64} |%X{sahara-log-id} |%msg%n'
- %d:输出时间
- %clr:可自定义颜色
- %t:线程
- %X:MDC(“Mapped Diagnostic Context”(映射诊断上下文)),用于追踪请求
- %logger{}:输出logger,参数限定输出长度,超长将缩写
- %后接-表示最小长度,左对齐右填充
-
spring-boot内置配置:logback、log4j2、JUL默认配置文件,主要了解logback默认配置
-
base.xml预设日志文件输出路径,配置root输出级别是level,引入预先配置的console、file输出
<included> <include resource="org/springframework/boot/logging/logback/defaults.xml" /> <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/> <include resource="org/springframework/boot/logging/logback/console-appender.xml" /> <include resource="org/springframework/boot/logging/logback/file-appender.xml" /> <root level="INFO"> <appender-ref ref="CONSOLE" /> <appender-ref ref="FILE" /> </root> </included>
-
defaults.xml预设日志输出格式,配置部分logger输出级别
<included> <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"
-