当前位置: 首页 > news >正文

logback常用配置

logback-spring.xml 常用配置

  • 以上结构包含三大核心模块:属性定义、Appender 设置、Logger 管理。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration scan="false"><!-- 引入 Spring Boot 默认的 Logback 配置,包含一些基础的属性和宏定义 --><include resource="org/springframework/boot/logging/logback/defaults.xml" /><!-- 应用名称,用于日志文件命名和输出格式中的标识 --><property name="APP_NAME" value="admin"/><!-- 日志文件路径,优先使用环境变量 BUILD_FOLDER,否则默认 logs 目录 --><property name="LOG_FILE" value="${BUILD_FOLDER:-logs}/${APP_NAME}"/><!-- 日志输出格式:时间、级别、应用名、Trace 信息、进程 ID、线程、类名、行号、消息、异常栈 --><property name="LOG_PATTERN" value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] %level [${APP_NAME:-},%X{traceId},%X{spanId},%X{parentId}] ${PID:- } --- [%thread] %-40.40class{39} %L: %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx} \n"/><!-- 文件 Appender:将日志写入滚动文件 --><appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 日志文件路径,带 .log 后缀 --><file>${LOG_FILE}.log</file><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><!-- 按日期和索引命名滚动文件 --><fileNamePattern>${LOG_FILE}-%d{yyyyMMdd}.log.%i</fileNamePattern><!-- 单个日志文件最大 100MB --><maxFileSize>100MB</maxFileSize><!-- 保留最近 30 天的日志 --><maxHistory>30</maxHistory><!-- 日志总大小上限 20GB,超过则最旧文件删除 --><totalSizeCap>20GB</totalSizeCap></rollingPolicy><encoder><Pattern>${LOG_PATTERN}</Pattern></encoder></appender><!-- Trace 文件 Appender:专门输出链路追踪(Span)信息 --><appender name="Trace-file" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_FILE}.trace.log</file><rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"><fileNamePattern>${LOG_FILE}-%d{yyyyMMdd}.trace.log.%i</fileNamePattern><maxFileSize>100MB</maxFileSize><maxHistory>30</maxHistory><totalSizeCap>20GB</totalSizeCap></rollingPolicy><!-- 仅输出消息内容,一行一条 Span 日志 --><encoder><Pattern>%msg%n</Pattern></encoder></appender><!-- 控制台 Appender:日志也输出到控制台,方便开发和容器化场景 --><appender name="console" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>${LOG_PATTERN}</pattern><charset>UTF-8</charset></encoder></appender><!-- 根日志级别及输出目的地:默认 INFO 级别,发送到控制台和文件 --><root level="info"><appender-ref ref="console"/><appender-ref ref="file"/></root><!-- 针对特定包或组件的日志级别单独控制 --><logger name="org.mybatis.spring" level="INFO"/><logger name="io.netty" level="INFO"/><logger name="com.ulisesbocchio" level="INFO"/><logger name="org.quartz" level="INFO"/><logger name="com.xdr630" level="INFO"/><!-- 独立的链路追踪日志,不继承 root ,只写到 Trace-file --><logger name="brave.Tracer" level="INFO" additivity="false"><appender-ref ref="Trace-file"/></logger>
</configuration>

2. 关键配置解析

  1. 属性模块
    • APP_NAMELOG_FILE:支持环境变量覆盖,适配不同部署环境。
    • LOG_PATTERN:日志输出格式化,包含时间、线程、类路径、行号及上下文信息。
  2. 文件滚动策略
    • SizeAndTimeBasedRollingPolicy:结合日期和大小双重切分,单文件最大 100MB;保留 30 天历史,累计上限 20GB。
    • 适用于高并发、日志量大的生产环境,可避免日志目录无限膨胀。
  3. 链路追踪分离
    • 通过 <logger name="brave.Tracer" additivity="false">,将 Sleuth/Brave 生成的 Span 信息写入独立文件,方便链路分析。
  4. 控制台输出
    • 开发和容器化场景下,实时查看日志;通过 UTF-8 编码保证多语言兼容。

3. 模板化与扩展

  • 多环境支持:在不同环境的启动脚本中,通过
    -DBUILD_FOLDER=/data/logs-DAPP_NAME=order-service 动态指定。

  • 自定义 Appender:可集成 Logstash、Kafka、Elasticsearch Appender,直连日志收集平台。

  • 日志级别调整:在配置中通过 <logger> 针对特定包或类细粒度控制,避免噪声信息。

  • 有关Java日志相关的,可以参考专栏:Java日志

相关文章:

  • aws(学习笔记第四十四课) opensearch
  • ShardingSphere 全面学习路径
  • 理解 package.json 中的版本控制:“nuxt“: “3.16.0“ vs “nuxt“: “^3.16.0“ 的深层差异
  • 青少年编程与数学 01-011 系统软件简介 21 杀毒软件及安全软件
  • Android 多 BaseUrl 动态切换策略(结合 ServiceManager 实现)
  • 【数据结构中哈希函数与哈希表】
  • Leetcode 刷题记录 14 —— 回溯
  • 《拖延心理学》:深度剖析与应对指南​
  • Java对象中的MarkWord
  • 解决电脑第一排按键功能失效的问题
  • 【Redis】分布式锁
  • 手动 + 自动双方案组合:Innocise 壁虎吸盘灵活适配多场景无损搬运需求
  • Redis中的set底层实现
  • 行为设计模式之State(状态)设计模式
  • ceil方法
  • WebStorm编辑器侧边栏
  • 40套精品大气黑金系列行业PPT模版分享
  • 【Bluedroid】蓝牙启动之核心模块(startProfiles )初始化与功能源码解析
  • gradle的 build时kaptDebugKotlin 处理数据库模块
  • Laravel 12 更新与之前版本结构变更清单
  • 做网站需要买ip地址吗/湖北疫情最新情况
  • 太原做网站效果怎么样/潍坊网站建设咨询
  • 产品销售型企业网站有哪些/赣州seo外包怎么收费
  • 2345网址导航手机版下载/windows7优化大师
  • 政府网站集约化建设背景/做推广网络
  • 网站工具查询/快速提升网站排名