欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > logback常用配置

logback常用配置

2025/6/21 3:29:17 来源:https://blog.csdn.net/qq_41684621/article/details/148670850  浏览:    关键词: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日志

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词