控制台输出大量DEBUG日志如何关闭?配置无效求排查
问题原因及解决方案
核心问题
你的日志输出显示当前使用Log4j2作为日志实现(org.jboss.logging.Log4j2LoggerProvider),但你尝试的两种配置方式都是针对Spring Boot默认日志框架(如SLF4J+Logback)的,对Log4j2不生效,所以DEBUG日志依然会输出。
具体解决方法
方法1:添加Log4j2专属配置文件
在项目src/main/resources目录下创建log4j2.xml配置文件,指定对应包的日志级别:
<?xml version="1.0" encoding="UTF-8"?> <Configuration status="WARN"> <Appenders> <Console name="Console" target="SYSTEM_OUT"> <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> </Console> </Appenders> <Loggers> <!-- 配置Hibernate日志级别为INFO --> <Logger name="org.hibernate" level="INFO" additivity="false"> <AppenderRef ref="Console"/> </Logger> <!-- 配置Spring框架日志级别为INFO --> <Logger name="org.springframework" level="INFO" additivity="false"> <AppenderRef ref="Console"/> </Logger> <!-- 根日志级别设为INFO --> <Root level="INFO"> <AppenderRef ref="Console"/> </Root> </Loggers> </Configuration>
保存后重启项目,DEBUG日志会被自动过滤。
方法2:使用Log4j2专属系统参数
如果不想添加配置文件,直接替换运行参数为Log4j2的格式:
-Dlog4j2.logger.org.hibernate=INFO -Dlog4j2.logger.org.springframework=INFO -Dlog4j2.rootLogger.level=INFO
额外说明
你hibernate.cfg.xml里的show_sql=true和format_sql=true是独立的SQL打印配置,和日志级别无关。如果不想看到SQL输出,将这两个属性改为false即可;仅关闭DEBUG日志无需修改这两项。
内容的提问来源于stack exchange,提问作者стасевич
相关产品推荐
相关产品推荐

