java日志

💡 背景:Java 日志体系结构

Java 中常见的日志框架分为两层结构:

scss
[日志接口] → [日志实现] ↓ ↓ SLF4J (门面/抽象层) → Logback、Log4j、java.util.logging 等

SLF4J 只提供了统一的日志接口,真正干活的是后面的日志实现(如 Logback)。


1. org.slf4j:slf4j-api 👉 日志接口层

这是 SLF4J 的 API,是你在代码中引用 LoggerLoggerFactory 的来源。比如你会写这样的代码:

java
import org.slf4j.Logger; import org.slf4j.LoggerFactory; private static final Logger logger = LoggerFactory.getLogger(MyClass.class);
  • 它本身不输出任何日志(没有实现),就像 JDBC 一样,只定义了规范。

  • 你需要绑定一个具体的实现,比如 logback-classic,否则运行时会报错。


2. ch.qos.logback:logback-core 👉 Logback 的核心模块

这个模块是 Logback 的基础模块,不直接支持 SLF4J,也不会读取 logback.xml,它提供底层功能,比如:

  • Appender(日志输出器)基础类;

  • Encoder(日志格式编码器);

  • Filter(日志过滤器);

  • 文件滚动策略、异步队列等。

logback-core 提供了很多被 logback-classic 复用的组件和抽象类


3. ch.qos.logback:logback-classic 👉 Logback 的 SLF4J 实现

这是 Logback 的核心实现部分:

  • 实现了 SLF4J 的接口(是 slf4j-api 的绑定器 binding),是你代码里真正用来输出日志的库。

  • 它支持解析和使用 logback.xml(或者 logback-spring.xml)进行配置;

  • 实现了基于级别(INFO/DEBUG/ERROR)、线程、日志文件滚动等控制;

运行时,这个模块会自动绑定到 slf4j-api,让你写的 LoggerFactory.getLogger() 真正生效。

posted @ 2025-07-02 15:33  我爱麻辣香锅  阅读(11)  评论(0)    收藏  举报