Logback 系列(8):实战 · 逐行拆解一份生产配置

发布时间:2026/7/19 3:13:03
Logback 系列(8):实战 · 逐行拆解一份生产配置 本系列第 8 篇。把前面的知识串起来通读一份真实的生产logback-spring.xml。完整思路概览这份配置的核心设计是按环境分流——非生产只落本地生产额外推日志平台Kafka → ELK。逐段拆解① 定义日志目录propertynameLOG_HOMEvalue./logs/② 控制台彩色 Pattern%clr(...)是 Spring Boot 提供的着色转换器让控制台日志按级别显示颜色。conversionRuleconversionWordclrconverterClass...ColorConverter/③ 文件 Appender 滚动策略即上一篇讲的SizeAndTimeBasedRollingPolicy。④ 从 yml 读取 Kafka 配置springPropertynameappNamesourcespring.log-kafka.log-name/springPropertynamelogServerssourcespring.log-kafka.log-servers/springPropertynamelogTopicsourcespring.log-kafka.log-topic/⑤ 按环境分流非 prod只打 STDOUT FILE。prod额外把日志推到 Kafka走日志平台并用异步包装。⑥ 生产的 Kafka AppenderappendernamekafkaAppenderclass...KafkaAppenderproducerConfigbootstrap.servers${logServers}/producerConfigproducerConfigretries0/producerConfig!-- 日志不重试避免阻塞业务 --producerConfigmax.block.ms2000/producerConfig!-- Kafka 挂了最多阻塞 2s --encoderclass...LoggingEventCompositeJsonEncoder!-- 输出 JSON 给 ELK --.../encoder/appender⑦ 降噪屏蔽 Kafka 客户端自身日志否则会形成“日志推 Kafka → Kafka 客户端又打日志 → 再推 Kafka”的循环刷屏。loggernameorg.apache.kafka.clients.NetworkClientlevelERROR/⑧ 异步包装 挂到 rootappendernameAsyncKafkaLogclass...AsyncAppenderappender-refrefkafkaAppender//appender这份配置的亮点环境分流清晰生产才接平台。Kafka 发送配了短超时、不重试日志不拖垮业务。主动降噪避免日志循环放大。超长日志截断%.-512000msg防爆盘。上一篇常用 Appender下一篇高级篇 · 异步日志 AsyncAppender