Logback 系列(7):常用 Appender(控制台 / 文件 / 滚动文件)

本系列第 7 篇。Appender 决定日志输出到哪,这篇覆盖最常用的三类。

ConsoleAppender(控制台)

开发环境看日志用,输出到 stdout。

xml 复制代码
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

RollingFileAppender(滚动文件)

生产必备。一定要用 Rolling(滚动),否则单文件会无限增长直到撑爆磁盘。

滚动策略:SizeAndTimeBasedRollingPolicy(按时间 + 大小)

既按天切、又按大小切,是最常用的组合:

xml 复制代码
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <FileNamePattern>${LOG_HOME}/integration.log.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
        <MaxHistory>30</MaxHistory>         <!-- 保留 30 天 -->
        <MaxFileSize>50MB</MaxFileSize>     <!-- 单文件超 50MB 就切 -->
        <totalSizeCap>30GB</totalSizeCap>   <!-- 所有日志总量上限 30GB -->
    </rollingPolicy>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
    </encoder>
</appender>

文件名占位符:

  • %d{yyyy-MM-dd}:按天。
  • %i:同一天内的第几个文件(配合 MaxFileSize)。

三个防爆盘参数一定要配

  • MaxHistory:保留多少天/多少个历史文件。
  • MaxFileSize:单个文件多大就切。
  • totalSizeCap:所有日志文件的总量上限,超了自动删最旧的。

三者配齐,日志才不会把磁盘写满。


上一篇:Pattern 布局语法

下一篇:实战:逐行拆解一份生产配置

相关推荐
隔窗听雨眠9 分钟前
CI/CD测试数据清理完全指南:从污染根因到三层清理覆盖的完整方案
java·数据库·ci/cd
Query*14 分钟前
Agent 开发之项目 AI 能力自我进化:通过浏览器自动化与数据采集实现持续学习
java·人工智能·ai·自动化
CIO_Alliance18 分钟前
AI提示系列(2)| Few-shot与ReAct有何不同? 大模型工具调用的底层逻辑详解
前端·人工智能·深度学习·神经网络·react.js·前端框架·ai+ipaas
晓晓_za89866825 分钟前
GEO 搜索源码白帽合规改造:适配各大 AI 信源收录规则
java·开发语言·人工智能·性能优化·开源
Haooog26 分钟前
从 Tool Calling 到 State 并发控制:一个 Agent 如何安全地连续执行任务
java·agent·后端开发
cindershade40 分钟前
别只收三个数字:前端 RUM 如何建立可解释的体验数据链
前端
君顾142 分钟前
从0到1课后辅导管理系统开发实战:需求文档、架构设计全复盘
java·开发语言
NeoGressAI外贸数字化1 小时前
外贸建站:新手怎么自建独立站完整指南
java·人工智能
前端 贾公子1 小时前
第09章:上下文与记忆 (4)
java·服务器·前端
Coodor1 小时前
使用web也可以写NFC微信小程序拉取
前端·微信小程序·小程序·nfc拉起小程序