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 布局语法

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

相关推荐
蜗牛攻城狮28 分钟前
微前端四大方案选型对比与最佳实践:qiankun、micro-app、wujie、Module Federation
前端·微前端·qiankun·前端架构·micro-app·wujie
学长毕设1 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
她说可以呀2 小时前
Vue插槽
前端·javascript·vue.js
qq_448011162 小时前
Vue + Jinja2两套模版与法冲突造成undefinedError
前端·javascript·vue.js
zzu123zsw2 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
aixingpan2 小时前
aixingpan.cn API开发文档:前端查询夏令时和时区接口指南
前端·php
2601_958352903 小时前
23.5×19mm 换掉一整条音频链?|A-68 集成了什么:ADC / DAC / 24.576MHz 时钟 / AEC / 波束降噪,主控仅需 6 根线
前端·音视频·ai降噪·回声消除·语音模块
源码集结号3 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统
论文复现现场3 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
志尊宝3 小时前
AI原生前端开发(039):AI辅助的Nuxt 4全栈开发
前端·vue.js·ai-native