日志框架
目前市面上常见的日志框架有:slf4j(Simple Logging Facade for Java)、logback、log4j、log4j2、commons-logging(Spring默认日志框架)、JUL(java.util.logging)等。
日志框架包括日志的抽象与日志的实现两部分,其中日志的抽象推荐使用slf4j,而日志的实现推荐使用logback。Spring Boot的日志框架默认选择的就是这两个。
SLF4J的使用
系统开发在使用日志的时候,不应该使用日志的实现,而应该使用日志的抽象,但是日志的配置文件还是要使用日志实现框架本身的配置文件,日志使用示例代码如下:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HelloWorld {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.info("Hello World!");
}
}
slf4j的调用结构如下:
日志统一问题
当一个项目集成了多个框架,而这些框架大部分都集成了日志框架,就会出现一个项目底层使用多种日志框架的问题,slf4j给出了这个问题的解决办法,如下图所示:
日志框架统一为slf4j的步骤:①排除其他框架集成的日志框架;②用中间包来替换原来的日志框架;③导入slf4j框架的其他实现。
Spring Boot的日志
Spring Boot Starter的maven依赖:
< dependency >
< groupId >org.springframework.boot< /groupId >
< artifactId >spring-boot-starter< /artifactId >
< version >2.7.7< /version >
< scope >compile< /scope >
< /dependency >
Spring Boot底层的日志依赖关系图:
Spring Boot使用的日志依赖:
< dependency >
< groupId >org.springframework.boot< /groupId >
< artifactId >spring-boot-starter-logging< /artifactId >
< version >2.7.7< /version >
< scope >compile< /scope >
< /dependency >
由上图可以看出,Spring Boot自动适配了所有的日志,而且底层默认使用了slf4j+logback记录日志,引入其他框架的时候,只需要把这个框架依赖的日志框架移除即可。
Spring Boot默认日志框架示例代码如下:
package com.brevity;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class LoggingApplicationTests {
// 获取日志记录器,参数建议使用当前类
Logger logger = LoggerFactory.getLogger(LoggingApplicationTests.class);
@Test
void logTest() {
// Spring Boot默认使用的是info级别的日志
logger.trace("跟踪日志");
logger.debug("debug日志");
logger.info("info日志");
logger.warn("warn日志");
logger.error("error日志");
}
}
修改默认的日志级别只需要在配置文件中修改即可,例如在application.properties文件中添加如下代码:
# 调整日志级别
logging.level.com.brevity=trace
# 修改控制台输出的日志格式
# %d表示日期时间,%thread表示线程名,%-5level:级别从左显示5个字符宽度
# %logger{50} 表示logger名字最长50个字符,否则按照句号分割,%msg:日志消息,%n是换行符
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50
-
Boot
+关注
关注
0文章
149浏览量
35823
发布评论请先 登录
相关推荐
Spring框架的设计理念
启动Spring Boot项目应用的三种方法
Spring Boot嵌入式Web容器原理是什么
java 日志框架Spring Boot分析
Spring Boot框架错误处理
spring mvc框架介绍

Spring Boot定时任务的重写方法
Spring Boot从零入门1 详述
Spring Boot特有的实践
Spring Boot Web相关的基础知识
Spring Boot Actuator快速入门
Spring Boot启动 Eureka流程

Spring Boot的启动原理

评论