Log4J2.xml未生成日志文件,SpringBoot疑似忽略该配置文件
你的Log4J2配置内容本身合法,问题大概率出在依赖配置、文件名规范或SpringBoot日志相关设置上,按以下步骤排查:
排除默认Logback依赖,引入Log4J2 starter
SpringBoot默认集成Logback日志框架,启用Log4J2必须先排除Logback,再引入对应starter。
Maven项目在pom.xml中添加:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>Gradle项目在build.gradle中配置:
configurations { all { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging' } } dependencies { implementation 'org.springframework.boot:spring-boot-starter-log4j2' }检查配置文件名规范性
确保配置文件名为log4j2.xml或log4j2-spring.xml,注意大小写敏感(Linux/macOS环境下尤其重要),你当前的Log4J2.xml大小写混合命名可能导致SpringBoot无法识别,改成全小写即可。确认SpringBoot配置未覆盖日志设置
检查application.properties或application.yml中是否存在logging.config配置项,若该配置指定了其他路径的日志文件,会直接忽略resources下的默认配置。如有,删除该配置或修改为logging.config=classpath:log4j2.xml。
同时避免设置与Log4J2配置冲突的logging.level.*项,这类配置可能覆盖Log4J2的Root logger设置。验证配置文件位置
确保log4j2.xml放在src/main/resources的根目录下,而非任何子文件夹中。若放在子目录,需通过logging.config指定路径。查看启动日志排查加载问题
启动SpringBoot应用时,观察控制台日志,搜索Log4j2相关内容:- 若看到
Log4j2 configuration file not found,说明文件未被识别,回到文件名/位置排查; - 若看到配置解析错误(如XML格式问题),根据错误提示修正配置。
- 若看到
内容的提问来源于stack exchange,提问作者Andrew Johnson

