天天看点

java日志大全完结:springboot使用日志

作者:不开心就撸代码

SpringBoot中的日志使用

springboot框架在企业中的使用越来越普遍,springboot日志也是开发中常用的日志系统。springboot 默认就是使用SLF4J作为日志门面,logback作为日志实现来记录日志。

1. SpringBoot中的日志设计

springboot中的日志

<dependency>
<artifactId>spring-boot-starter-logging</artifactId>
<groupId>org.springframework.boot</groupId>
</dependency>           

总结:

1. springboot 底层默认使用logback作为日志实现。

2. 使用了SLF4J作为日志门面

3. 将JUL也转换成slf4j

4. 也可以使用log4j2作为日志门面,但是最终也是通过slf4j调用logback

2. SpringBoot日志使用

1. 在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");
}
}           

2. 修改默认日志配置

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           

3. 指定配置

给类路径下放上每个日志框架自己的配置文件;SpringBoot就不使用默认配置的了

java日志大全完结:springboot使用日志

4. 使用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           

5. 将日志切换为log4j2

<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 <exclusions>
 <!--排除logback-->
 <exclusion>
 <artifactId>spring-boot-starter-logging</artifactId>
 <groupId>org.springframework.boot</groupId>
 </exclusion>
 </exclusions>
</dependency>
<!-- 添加log4j2 -->
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>