Logback 系列(3):三大核心组件 Logger / Appender / Encoder

本系列第 3 篇。理解这三者的关系,Logback 就懂了一大半。

一张图理清关系

复制代码
应用代码 → Logger(决定"要不要记")→ Appender(决定"记到哪")→ Encoder(决定"记成什么样")
  • Logger(记录器):按名字(通常是类的全限定名)组织,负责判断级别、把日志事件转交给 Appender。
  • Appender(输出源):日志的"出口"。控制台、文件、数据库、Kafka......一个 Logger 可以挂多个 Appender。
  • Encoder / Layout(编码器/布局):把日志事件格式化成最终文本(或 JSON)。现在推荐用 Encoder。

对应到 XML

xml 复制代码
<appender name="STDOUT" class="...ConsoleAppender">   <!-- Appender -->
    <encoder>                                         <!-- Encoder -->
        <pattern>%d ... %msg%n</pattern>              <!-- Pattern -->
    </encoder>
</appender>

<root level="info">                                    <!-- Logger(根) -->
    <appender-ref ref="STDOUT"/>                       <!-- Logger 挂 Appender -->
</root>

记忆口诀

  • Logger 管"记不记"(级别过滤)
  • Appender 管"记哪去"(输出目的地)
  • Encoder 管"长啥样"(格式化)

三者是流水线关系:一条日志先过 Logger 的级别判断,再交给它挂的每个 Appender,每个 Appender 用自己的 Encoder 格式化后输出。


上一篇:SLF4J 与 Logback

下一篇:日志级别与继承(additivity)

相关推荐
黄贵根1 天前
JavaScript实现教培行业意向登记系统
开发语言·javascript·ecmascript
zzzll11111 天前
Claude Code离线安装方案揭秘
开发语言·php
mifengxing1 天前
LeetCode 41.缺失的第一个正数|Hard题O(n)+O(1)最优解法深度解析
java·算法·leetcode·排序算法
wling03011 天前
vasp虚频计算-python脚本
开发语言·windows·python·vasp计算
郝学胜-神的一滴1 天前
Qt 高级编程 040:按钮悬浮弹出滑块弹窗的完整攻略
开发语言·c++·qt·软件工程·用户界面
xrandzj1 天前
Python面向对象编程入门:类、实例、初始化与封装实践
开发语言·python
DLYSB_1 天前
API 网关流量洪峰与突发 CC 攻击:我用 Go 写了个“现场物理防御哨兵”,把故障响应压缩到秒级
开发语言·后端·golang·报警灯
markinmarkin1 天前
Spring 中Bean 的作用域有哪些?
java·后端·spring
山荷枝1 天前
Java学习第十天
java·学习
matlabgoodboy1 天前
计算机毕设代做|Java Python Matlab APP 全套开发设计
java·python·课程设计