SpringBoot中的日志设计
springboot框架在企业中的使用越来越普遍,springboot日志也是开发中常用的日志系统。springboot默认就是使用SLF4J作为日志门面,logback作为日志实现来记录日志。
springboot中的日志
<dependency>
<artifactId>spring-boot-starter-logging</artifactId>
<groupId>org.springframework.boot</groupId>
</dependency>
依赖关系图:
总结:
- springboot 底层默认使用logback作为日志实现。
- 使用了SLF4J作为日志门面
- 将JUL也转换成slf4j
- 也可以使用log4j2作为日志门面,但是最终也是通过slf4j调用logback
SpringBoot日志使用
- 在springboot中测试打印日志
@SpringBootTest
class SpringbootLogApplicationTests {
// 记录器
public static final Logger LOGGER = LoggerFactory.getLogger(SpringbootLogApplicationTests.class);
@Test
public void contextLoads() {
// 打印日志信息
LOGGER.error("error");
LOGGER.warn("warn");
LOGGER.info("info"); // 默认日志级别
LOGGER.debug("debug");
LOGGER.trace("trace");
}
}
- 修改默认日志配置
logging.level.com.itheima=trace
# 在控制台输出的日志的格式 同logback
logging.pattern.console=%d{yyyy-MM-dd} [%thread] [%-5level] %logger{50} -
%msg%n
# 指定文件中日志输出的格式
logging.file=D:/logs/springboot.log
logging.pattern.file=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n
- 指定配置
给类路径下放上每个日志框架自己的配置文件;SpringBoot就不使用默认配置的了
logback.xml:直接就被日志框架识别了 - 使用SpringBoot解析日志配置
logback-spring.xml:由SpringBoot解析日志配置
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<springProfile name="dev">
<pattern>${pattern}</pattern>
</springProfile>
<springProfile name="pro">
<pattern>%d{yyyyMMdd:HH:mm:ss.SSS} [%thread] %-5level
%msg%n</pattern>
</springProfile>
</encoder>
application.properties
spring.profiles.active=dev