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)

相关推荐
学长毕设11 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
C^h11 小时前
c++ string
开发语言·c++
raindayinrain11 小时前
c++高性能--原子操作,无锁编程,操作顺序
开发语言·c++·性能优化
学逆向的12 小时前
C++ 合并命名空间
开发语言·c++·网络安全
Zhao-Jichao12 小时前
VS2026 打包 C++ 程序生成 EXE,借助 Installer Project 扩展工具
开发语言·c++
zzu123zsw12 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
学逆向的13 小时前
C 局部静态变量
c语言·开发语言·网络安全
大都督会赢的13 小时前
C++第一节课
开发语言·c++
“AI国潮设计-小江”13 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
源码集结号13 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统