SpringBoot的日志解决方案

本文最后更新于:3 年前

timg-2.jpg

日志

日志在开发过程中作用

在开发过程这种,我们经常要调试和打印一些信息,这样的帮助和我辅助我们进行问题排查数据跟踪

一般传统的方式是使用

1
System.out.printltn("xxxxx ")

但是上面的这种方式存在如下问题:

1:仅仅只是一种控制台打印的方式。

2:不方便我后续生产环境的调试和查看。

3:性能角度,存在一定性能问题。会影响方法的执行速度。虽然影响很小,但是也不应该小觑。

解决方案

把打印的信息写入文件中。===》日志

Springboot的日志的解决方案

在springboot的底层日志结构中对应:spring-boot-starter-logging可以看出,它依赖了三个框架分别是:

spring-boot-starter-logging 依赖已经被

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

关系体系

springboot的日志的整个体系:

1624279228011

springboot的底层日志结构中对应:spring-boot-starter-logging可以看出,它依赖了三个框架分别是:

  • slf4j
  • logback
  • log4j

slf4j、logback和log4j三者的关系

1、logback和log4j是日志实现框架,就是实现怎么记录日志的。

2、slf4j:提供了java所有的日志框架的简单抽象(使用了日志的门面设计模式),

说白了就是一个日志API(没有实现类), 它不能单独使用

必须要结logback和log4j日志框架来实现结合使用

1
2
3
4
5
6
7
8
9
10
11
12
@RestController
public class LogController {
private static final Logger log = LoggerFactory.getLogger(LogController.class);
@GetMapping("/log")
public void console(){
log.trace("----------trace--------");
log.debug("----------debug--------");
log.info("----------info--------");
log.warn("----------warn--------");
log.error("----------error--------");
}
}

使用

1
2
// 初始化一个日志对象
private static Logger log = LoggerFactory.getLogger(IndexController.class);

打印结果

1


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!