当前位置: 首页 > 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日志

http://www.xdnf.cn/news/1050625.html

相关文章:

  • 自增id用完怎么办?
  • C# CS_Prj01 串口通信控制台程序
  • Java学习笔记——lambda表达式
  • 【FastAPI高级实战】结合查询参数与SQLModel Joins实现高效多表查询(分页、过滤、计数)
  • 微信开发者工具 插件未授权使用,user uni can not visit app
  • Gartner《Reference Architecture for Federated Analytics》学习心得
  • SAP代理商——哲讯科技,助力企业数字化转型
  • 严格三角形方程组
  • 用c语言实现简易c语言扫雷游戏
  • 解析Buildroot
  • html css js网页制作成品——HTML+CSS+js力学光学天文网页设计(4页)附源码
  • MySQL基础架构
  • 深度学习:PyTorch自动微分模块
  • 【CUDA GPU 支持安装全攻略】PyTorch 深度学习开发者指南
  • AI 社交和AI情绪价值的思考 -延申思考2 -全局记忆
  • MobaXterm首次连接Ubuntu失败
  • Rust语言典型并发模式小结
  • 【Dv3Admin】系统信号机制配置文件解析
  • Photoshop图层蒙版全介绍
  • Go实战项目OneX介绍(2/12):项目功能列表介绍
  • 【编程语言】从C++到Java到Golang,语法特性对比与开发实践指南(基础语法,类型系统,运行机制)
  • 多模态大语言模型arxiv论文略读(123)
  • Go语言--语法基础5--基本数据类型--输入输出(2)
  • GRPO训练布局感知的强化学习多模态文档解析框架-Infinity-Parser
  • HarmonyOSNext性能核弹:用Node-API引爆ArkTS/C++跨语言
  • 贝塞尔曲线的公式推导贝塞尔曲线的公式推导,和 SVG 中 Path 的贝塞尔曲线指令的理解记忆
  • 电感篇---常见作用
  • 2.SQL语句分类
  • css属性:图片使用filter属性使得position: fixed失效的情况
  • C语言状态机:从入门到精通