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

logback-spring.xml文件说明

项目里刚好用到,用豆包生成以下说明,此处作为记录。

以下是一个 logback-spring.xml 配置文件示例,结合了 Spring Boot 特性,支持环境区分、日志滚动和不同级别日志输出,并包含详细注释:

<?xml version="1.0" encoding="UTF-8"?>
<!-- logback-spring.xml 是 Spring Boot 推荐的 logback 配置文件名相比 logback.xml,它能更好地与 Spring 环境集成(如使用 springProfile 标签)
-->
<configuration scan="true" scanPeriod="60 seconds" debug="false"><!-- 1. 定义日志格式和变量 --><property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n" /><property name="LOG_FILE_PATH" value="${LOG_FILE:-${LOG_PATH:-${user.home}/logs}}/myapp" /><!-- 2. 控制台输出配置 --><appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"><!-- 控制台输出编码器 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!-- 使用定义的日志格式 --><pattern>${LOG_PATTERN}</pattern><!-- 字符编码 --><charset>UTF-8</charset></encoder><!-- 控制台输出过滤器:只输出 INFO 及以上级别日志(可根据需要调整) --><filter class="ch.qos.logback.classic.filter.ThresholdFilter"><level>INFO</level></filter></appender><!-- 3. 普通日志文件输出(INFO 及以上级别,按天滚动) --><appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender"><!-- 日志文件路径和名称 --><file>${LOG_FILE_PATH}/info.log</file><!-- 滚动策略:按时间滚动(每天一个文件) --><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><!-- 滚动后文件的命名格式(包含日期和.gz压缩) --><fileNamePattern>${LOG_FILE_PATH}/info.%d{yyyy-MM-dd}.log.gz</fileNamePattern><!-- 日志文件保留天数 --><maxHistory>30</maxHistory><!-- 总日志大小限制(超过后删除旧文件) --><totalSizeCap>10GB</totalSizeCap></rollingPolicy><!-- 过滤器:只输出 INFO 级别日志(不包含 ERROR) --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>DENY</onMatch> <!-- 匹配到 ERROR 级别则拒绝 --><onMismatch>ACCEPT</onMismatch> <!-- 不匹配则接受 --></filter><!-- 文件输出编码器 --><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${LOG_PATTERN}</pattern><charset>UTF-8</charset></encoder></appender><!-- 4. 错误日志文件输出(ERROR 级别,单独存储) --><appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender"><file>${LOG_FILE_PATH}/error.log</file><rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"><fileNamePattern>${LOG_FILE_PATH}/error.%d{yyyy-MM-dd}.log.gz</fileNamePattern><maxHistory>30</maxHistory><totalSizeCap>5GB</totalSizeCap></rollingPolicy><!-- 过滤器:只输出 ERROR 级别日志 --><filter class="ch.qos.logback.classic.filter.LevelFilter"><level>ERROR</level><onMatch>ACCEPT</onMatch><onMismatch>DENY</onMismatch></filter><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><pattern>${LOG_PATTERN}</pattern><charset>UTF-8</charset></encoder></appender><!-- 5. 多环境日志级别配置(结合 Spring Profile) --><!-- 开发环境:日志级别为 DEBUG,输出到控制台和文件 --><springProfile name="dev"><root level="DEBUG"><appender-ref ref="CONSOLE" /><appender-ref ref="FILE_INFO" /><appender-ref ref="FILE_ERROR" /></root><!-- 特定包的日志级别(如 MyBatis 日志调为 INFO,避免 DEBUG 日志过多) --><logger name="org.mybatis" level="INFO" additivity="false"><appender-ref ref="CONSOLE" /></logger></springProfile><!-- 测试环境:日志级别为 INFO,输出到文件 --><springProfile name="test"><root level="INFO"><appender-ref ref="FILE_INFO" /><appender-ref ref="FILE_ERROR" /></root></springProfile><!-- 生产环境:日志级别为 WARN,输出到文件,限制日志量 --><springProfile name="prod"><root level="WARN"><appender-ref ref="FILE_INFO" /><appender-ref ref="FILE_ERROR" /></root><!-- 生产环境中,特定业务包日志级别设为 INFO --><logger name="com.example.business" level="INFO" additivity="false"><appender-ref ref="FILE_INFO" /></logger></springProfile><!-- 6. 自定义 logger 示例(针对特定包或类) --><!-- additivity="false" 表示不向上级 logger 传递日志,避免重复输出 --><logger name="com.example.controller" level="INFO" additivity="false"><appender-ref ref="CONSOLE" /><appender-ref ref="FILE_INFO" /></logger>
</configuration>

配置说明:

  1. 核心特性

    • 支持 Spring Profile 区分环境(开发 / 测试 / 生产)
    • 日志同时输出到控制台和文件
    • 按级别分离日志(普通日志和错误日志分开存储)
    • 自动滚动日志文件(按天分割,自动压缩旧文件)
  2. 主要配置项解释

    • <property>:定义全局变量(如日志格式、文件路径)
    • <appender>:日志输出目的地配置
      • CONSOLE:控制台输出,适合开发环境
      • FILE_INFO:普通日志文件输出(INFO 级别,不含 ERROR)
      • FILE_ERROR:错误日志单独输出(仅 ERROR 级别)
    • <springProfile>:结合 Spring 环境的日志级别控制
      • 开发环境(dev):输出 DEBUG 级别日志,便于调试
      • 生产环境(prod):只输出 WARN 及以上级别,减少日志量
    • <logger>:针对特定包或类的日志级别配置,可覆盖 root 配置
  3. 使用技巧

    • 日志文件路径默认在用户目录下的 logs/myapp 文件夹,可通过系统变量 LOG_PATH 或 LOG_FILE 自定义
    • 生产环境中通过限制日志级别和保留天数,避免磁盘空间耗尽
    • additivity="false" 用于防止日志重复输出(如同时输出到控制台和文件)

该配置可根据实际项目需求调整日志级别、文件路径和滚动策略。

    


文章转载自:

http://Q9f1tFoc.pgmyn.cn
http://eYpgqhnG.pgmyn.cn
http://66w9KFRR.pgmyn.cn
http://zqkVMT6t.pgmyn.cn
http://gJ8oR2MZ.pgmyn.cn
http://SdqXN4Xm.pgmyn.cn
http://bIKx6fl7.pgmyn.cn
http://QW8OaBfl.pgmyn.cn
http://yyZgwUVw.pgmyn.cn
http://8OdDCUWa.pgmyn.cn
http://MI94qhm5.pgmyn.cn
http://btQA85De.pgmyn.cn
http://B2zhj9Nb.pgmyn.cn
http://mzIHHrCR.pgmyn.cn
http://R1pPoZnc.pgmyn.cn
http://ptldmxXT.pgmyn.cn
http://4wjF9DfN.pgmyn.cn
http://9qC4wKnd.pgmyn.cn
http://BKhGoawm.pgmyn.cn
http://JkEzd2bu.pgmyn.cn
http://ukQIERNi.pgmyn.cn
http://WL6WgFiJ.pgmyn.cn
http://HqLlz1J2.pgmyn.cn
http://wNRbd4Eo.pgmyn.cn
http://Z3QMfrje.pgmyn.cn
http://5fwl2iUN.pgmyn.cn
http://vJoRxp6F.pgmyn.cn
http://IuVy2I30.pgmyn.cn
http://gQPA0q2P.pgmyn.cn
http://BAjrgt0m.pgmyn.cn
http://www.dtcms.com/a/379119.html

相关文章:

  • 【PyTorch训练】为什么要有 loss.backward() 和 optimizer.step()?
  • 抖音大数据开发一面(0905)
  • 原生js的轮播图
  • 连接池项目考点
  • ruoyi-flowable-plus框架节点表单的理解
  • js.228汇总区间
  • BERT中文预训练模型介绍
  • 光平面标定建立激光点与世界坐标的对应关系
  • Jmeter执行数据库操作
  • 基于FPGA的图像中值滤波算法Verilog开发与开发板硬件测试
  • 微软Aurora大模型实战:五大数据源驱动、可视化对比与应用
  • 【论文笔记】SpaRC: Sparse Radar-Camera Fusion for 3D Object Detection
  • C++基本数据类型的范围
  • Spring AI(三)多模态支持(豆包)
  • agentic Deep search相关内容补充
  • 第一篇:如何在数组中操作数据【数据结构入门】
  • PYcharm——pyqt音乐播放器
  • OpenAI已正式开放ChatGPT Projects
  • 日系电车销量破万,真正突围了,恰恰说明了电车的组装本质!
  • Linux 防火墙 Iptables
  • 不想考地信,计算机又太卷,所以转型GIS开发
  • PotPlayer 1.7.22611发布:支持蓝光播放+智能字幕匹配
  • LVS负载均衡群集与Keepalived高可用
  • React中hook的用法及例子(持续更新)
  • 【网络编程】TCP、UDP、KCP、QUIC 全面解析
  • 【1】占位符
  • A2A 中的内存共享方法
  • 力扣704. 二分查找
  • HttpServletRequest vs ServletContext 全面解析
  • 介绍keepalived和LVS