求助:Log4J日志无法在IntelliJ控制台正常输出
解决Log4J 2控制台无输出问题
核心问题
你当前使用的是Log4j 2.x依赖,但配置文件采用的是Log4j 1.x的语法格式,两者不兼容;同时配置文件放在src根目录无法被框架正确加载。
具体修复步骤
调整配置文件位置与名称
将配置文件移到src/main/resources目录下,并重命名为log4j2.properties(Log4j 2默认识别该名称的配置文件)。替换为Log4j 2兼容的配置内容
用以下内容替换原配置:# 根日志级别与输出目标 rootLogger.level = DEBUG rootLogger.appenderRefs = stdout rootLogger.appenderRef.stdout.ref = STDOUT # 控制台输出配置 appender.stdout.type = Console appender.stdout.name = STDOUT appender.stdout.target = SYSTEM_OUT appender.stdout.layout.type = PatternLayout appender.stdout.layout.pattern = %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n排查依赖冲突
执行mvn dependency:tree命令,检查是否存在其他SLF4J实现依赖(如slf4j-log4j12、logback-classic等),若有则通过<exclusions>标签排除这些冲突依赖,避免Log4j 2无法正常绑定SLF4J。验证IntelliJ运行配置
- 打开Run/Debug Configurations,确认运行配置未修改标准输出/错误输出的路径;
- 运行项目前执行
mvn clean compile,确保配置文件被正确打包到classpath中。
代码验证
你的日志调用代码是正确的,修复后运行Main类,控制台应同时输出Hello world!和INFO级别的日志内容。
内容的提问来源于stack exchange,提问作者kris82pl
相关产品推荐
相关产品推荐

