You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

log4j无法屏蔽HikariConfig等组件DEBUG冗余日志该如何解决

解决方案

配置不生效的核心原因大概率是日志框架实现冲突、配置覆盖范围不够、配置文件类型与使用的日志版本不匹配,可按以下步骤逐一调整:

步骤1:排查依赖冲突,统一日志框架

先检查项目依赖,确保没有多套日志实现同时存在:

  • 移除未用到的日志实现包,比如logback-classic、slf4j-simple这类包如果存在直接排除,避免和你用的log4j实现抢占优先级
  • HikariCP默认使用slf4j日志门面,确保你项目里的桥接包和实际用的log4j版本对应:
    • 用log4j 1.x的话必须加slf4j-log4j12桥接包
    • 用log4j 2.x的话必须加log4j-slf4j-impl桥接包

步骤2:修正配置,避免多配置冲突

你目前同时提供了log4j2的xml格式配置和log4j 1.x的properties格式配置,两个配置只会有一个生效甚至全部失效,按你实际使用的日志版本保留唯一的配置文件即可:

如果你使用log4j 1.x

删除xml格式配置,调整properties配置如下,注意配置要覆盖第三方库的整个包,不要只配置单个类,同时log4j 1.x没有SEVERE级别,对应改成ERROR:

# Root logger改为INFO输出正常业务日志,不需要可保留OFF
log4j.rootLogger=INFO, stdout, file
log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.logger.nz.ac.massey.cs.sdc.log4jassignment.s06005586.MemoryAppender = ERROR, MEMORY_APPENDER
log4j.additivity.nz.ac.massey.cs.sdc.log4jassignment.s06005586.MemoryAppender = false

# 日志文件配置
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs\\logging.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# 控制台输出配置
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

# 第三方库日志级别配置,全包覆盖
log4j.logger.org.hibernate=OFF
# 替换SEVERE为ERROR
log4j.logger.org.openqa.selenium = ERROR
# 覆盖Hikari全包,不要只配HikariConfig类
log4j.logger.com.zaxxer.hikari = OFF
# 屏蔽Apache HTTP DEBUG日志
log4j.logger.org.apache.http = ERROR

如果你使用log4j 2.x

删除log4j 1.x格式的properties配置,调整xml配置,同样覆盖全包:

<!-- 先设置root日志级别为INFO -->
<Root level="INFO">
    <AppenderRef ref="Console"/>
    <AppenderRef ref="File"/>
</Root>

<Logger name="org.openqa.selenium" level="ERROR" additivity="false">
    <AppenderRef ref="Console"/>
    <AppenderRef ref="File"/>
</Logger>

<Logger name="org.apache.http" level="ERROR" additivity="false">
    <AppenderRef ref="Console"/>
    <AppenderRef ref="File"/>
</Logger>

<!-- 覆盖Hikari全包 -->
<Logger name="com.zaxxer.hikari" level="info" additivity="false">
    <AppenderRef ref="Console"/>
    <AppenderRef ref="File"/>
</Logger>

<logger name="org.hibernate" level="info" additivity="false">
    <AppenderRef ref="Console"/>
    <AppenderRef ref="File"/>
</logger>

步骤3:快速强制生效方案

如果不想调整依赖和配置,可直接在项目启动代码的最开头加入强制设置日志级别的代码,优先级高于配置文件:

// log4j 1.x版本用这段
org.apache.log4j.Logger.getLogger("com.zaxxer.hikari").setLevel(org.apache.log4j.Level.OFF);
org.apache.log4j.Logger.getLogger("org.apache.http").setLevel(org.apache.log4j.Level.ERROR);
org.apache.log4j.Logger.getLogger("org.openqa.selenium").setLevel(org.apache.log4j.Level.ERROR);

// log4j 2.x版本用这段
org.apache.logging.log4j.core.config.Configurator.setLevel("com.zaxxer.hikari", org.apache.logging.log4j.Level.OFF);
org.apache.logging.log4j.core.config.Configurator.setLevel("org.apache.http", org.apache.logging.log4j.Level.ERROR);
org.apache.logging.log4j.core.config.Configurator.setLevel("org.openqa.selenium", org.apache.logging.log4j.Level.ERROR);

内容的提问来源于stack exchange,提问作者user8210794

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:57:02