java日志
💡 背景:Java 日志体系结构
Java 中常见的日志框架分为两层结构:
SLF4J 只提供了统一的日志接口,真正干活的是后面的日志实现(如 Logback)。
1. org.slf4j:slf4j-api 👉 日志接口层
这是 SLF4J 的 API,是你在代码中引用 Logger 和 LoggerFactory 的来源。比如你会写这样的代码:
-
它本身不输出任何日志(没有实现),就像 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() 真正生效。
浙公网安备 33010602011771号