欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 明星 > SpringBoot 3+ Lombok日志框架从logback改为Log4j2

SpringBoot 3+ Lombok日志框架从logback改为Log4j2

2025/4/23 22:58:19 来源:https://blog.csdn.net/moshowgame/article/details/146544552  浏览:    关键词:SpringBoot 3+ Lombok日志框架从logback改为Log4j2

r要将Spring Boot 3项目中的日志框架从Logback切换到Log4j2,并配置按日期滚动文件和控制台输出,请按照以下步骤操作:

步骤 1:排除Logback并添加Log4j2依赖

pom.xml中修改依赖:

<dependencies><!-- 排除默认的Logback依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-logging</artifactId></exclusion></exclusions></dependency><!-- 添加Log4j2依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId></dependency><!-- 其他依赖... -->
</dependencies><!-- 可选:添加异步日志支持(如需要高性能) -->
<dependency><groupId>com.lmax</groupId><artifactId>disruptor</artifactId><version>3.4.4</version>
</dependency>

步骤 2:创建Log4j2配置文件

src/main/resources目录下创建log4j2-spring.xml,内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30"><!-- Powered by Moshow@zhengkai.blog.csdn.net --><Properties><Property name="LOG_PATTERN_FILE">%d{yyyy-MM-dd HH:mm:ss.SSS}{GMT+0} [%t] %-5level %logger{36} - %msg%n</Property><Property name="LOG_PATTERN_CONSOLE">%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight{%-5level} [%t] %highlight{%c{1.}.%M(%L)}: %msg%n%throwable</Property><Property name="LOG_DIR" value="logs"/><Property name="LOG_FILE_NAME" value="sre_audit_log_dev"/></Properties><Appenders><!-- 控制台输出 --><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="${LOG_PATTERN_CONSOLE}" disableAnsi="false" noConsoleNoAnsi="false"/></Console><!-- 按日期滚动的文件输出 --><RollingFile name="RollingFile"fileName="${LOG_DIR}/${LOG_FILE_NAME}.log"filePattern="${LOG_DIR}/${LOG_FILE_NAME}-%d{yyyy-MM-dd}.log"><PatternLayout pattern="${LOG_PATTERN_FILE}"/><Policies><!-- 每天滚动一次 --><TimeBasedTriggeringPolicy interval="1" modulate="true"/><SizeBasedTriggeringPolicy size="50 MB" /></Policies><!-- 保留最近7天的日志 --><DefaultRolloverStrategy max="90"/></RollingFile></Appenders><Loggers><Root level="info"><AppenderRef ref="Console"/><AppenderRef ref="RollingFile"/></Root></Loggers>
</Configuration>

步骤 3:验证配置

  1. 启动应用:检查控制台是否有日志输出。

  2. 检查文件:查看logs/app.log是否生成,且每天会自动滚动生成新文件(如app-2023-10-01.log)。

  3. 验证Lombok:确保@Slf4j注解生成的日志能正常工作。

高级配置(可选)

  • 异步日志:在配置文件中使用<AsyncLogger><AsyncRoot>提升性能。

  • 按大小滚动:在RollingFile中添加<SizeBasedTriggeringPolicy size="100 MB"/>,实现按大小滚动。

  • 多环境配置:使用Spring Profile,创建log4j2-spring-dev.xmllog4j2-spring-prod.xml

常见问题

  • 依赖冲突:若启动时报SLF4J绑定冲突,检查是否遗漏排除spring-boot-starter-logging

  • 配置路径:确保配置文件命名为log4j2-spring.xml并放在src/main/resources下。

  • 时区问题:滚动时间基于服务器时区,可用<TimeBasedTriggeringPolicy timeZone="UTC"/>指定时区。

多环境配置

application.yaml中指定active的内容(本地模式),服务器则通过命令注入

java -jar your-app.jar --spring.profiles.active=dev
spring:profiles:active: dev
logging:config: classpath:log4j2-spring-dev.xml

然后application-dev.yaml中指定对应的文件为log4j2-spring-dev.yaml,从而形成闭环 

版权声明:

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

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

热搜词