当前位置 : 主页 > 编程语言 > 其它开发 >

日志记录真没你想的那么简单

来源:互联网 收集:自由互联 发布时间:2022-06-27
本文摘录总结于极客时间——《Java业务开发常见 100 例》   一些同学可能就会说了,记录日志还不简单,无非就是几个常用的 API 方法,比如 debug、info、warn、error,但日志其实不只是

本文摘录总结于极客时间——《Java业务开发常见 100 例》

  一些同学可能就会说了,记录日志还不简单,无非就是几个常用的 API 方法,比如 debug、info、warn、error,但日志其实不只是这些,容易出错主要是三个方面:

  • 日志框架众多,不同的类库可能会使用不同的日志框架,如何兼容是一个问题;
  • 配置复杂且容易出错。日志配置文件通常很复杂,因此有些开发同学会从其他项目或者网络上复制一份配置文件,但却不知道如何修改,甚至胡乱修改,造成很多问题;
  • 日志记录本身就有误区,比如没考虑到日志内容获取的代价、胡乱使用日志级别等。

  Logback、Log4j、Log4j2、commons-logging、JDK 自带的 java.util.logging 等,都是 Java 体系的日志框架,确实非常多。而不同的类库,还可能选择使用不同的日志框架。这样一来,日志的统一管理就变得非常困难。为了解决这个问题,就有了 SLF4J,如下图所示:
image

  SLF4J 实现了三种功能:

  • 一是提供了统一的日志门面 API,即图中紫色部分,实现了中立的日志记录 API。
  • 二是桥接功能,即图中蓝色部分,用来把各种日志框架的 API(图中绿色部分)桥接到 SLF4J API。
  • 三是适配功能,即图中红色部分,可以实现 SLF4J API 和实际日志框架(图中灰色部分)的绑定。

  虽然图中有 4 个灰色的日志实现框架,但我看到的业务系统使用最广泛的是 Logback 和 Log4j,但这两个框架出自同一个之手。Logback 可以视为 Log4j 的改进版本,我更推荐使用。
  并且,SpringBoot 是目前最流行的 Java 框架,它的日志框架也是用的 Logback,Logbook 已经被依赖到 spring-boot-starter-logging 模块。
  所以接下来的介绍都是以 Logback 为主。

为什么我的日志会被重复记录
上一篇:二:动手实操SpringBoot
下一篇:没有了
网友评论