如何禁用TestNG控制台中org.testng.internal.Utils的INFO日志
屏蔽TestNG内部Utils类INFO日志的解决方案
一、通过Log4j2配置过滤特定日志
在你的Log4j2配置文件中,针对org.testng.internal.Utils类添加专属logger配置,将其日志级别设为WARN及以上,直接过滤掉INFO级别的冗余日志:
修改后的Log4j2配置:
status=warn appender.console.type=Console appender.console.name=LogToConsole appender.console.layout.type=PatternLayout appender.console.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n # Rotate log file appender.rolling.type=RollingFile appender.rolling.name=LogToRollingFile appender.rolling.fileName=log4j2/log4j2-automation-test.log appender.rolling.filePattern=log4j2/$${date:yyyy-MM}/log4j2-automation-test-%d{MM-dd-yyyy}-%i.log.gz appender.rolling.layout.type=PatternLayout appender.rolling.layout.pattern=%d %p %C{1.} [%t] %m%n appender.rolling.policies.type=Policies appender.rolling.policies.time.type=TimeBasedTriggeringPolicy appender.rolling.policies.size.type=SizeBasedTriggeringPolicy appender.rolling.policies.size.size=50MB appender.rolling.strategy.type=DefaultRolloverStrategy appender.rolling.strategy.max=10 # 新增:屏蔽TestNG Utils的INFO日志 logger.testng-utils.name=org.testng.internal.Utils logger.testng-utils.level=WARN logger.testng-utils.additivity=false logger.testng-utils.appenderRef.rolling.ref=LogToRollingFile # 原有业务日志配置 logger.app.name=com.da.mobile.automation logger.app.level=debug logger.app.additivity=false logger.app.appenderRef.rolling.ref=LogToRollingFile logger.app.appenderRef.console.ref=LogToConsole rootLogger.level=info rootLogger.appenderRef.stdout.ref=LogToConsole
level=WARN:仅允许WARN及以上级别的日志输出,直接过滤INFO级别的方法耗时日志additivity=false:避免该类日志被rootLogger重复处理输出到控制台
二、修复Maven依赖的日志实现冲突
当前pom.xml同时引入了slf4j-simple和log4j-core,两者都是SLF4J的日志实现,会导致日志输出逻辑混乱。建议移除slf4j-simple,改用Log4j2官方的SLF4J绑定包,确保所有日志统一由Log4j2处理:
调整后的依赖片段:
<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>${testng.version}</version> </dependency> <dependency> <groupId>org.aeonbits.owner</groupId> <artifactId>owner</artifactId> <version>${owner.version}</version> </dependency> <dependency> <groupId>io.qameta.allure</groupId> <artifactId>allure-testng</artifactId> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4jcore.version}</version> </dependency> <!-- 新增Log4j2的SLF4J绑定包,版本与log4j-core保持一致 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>${log4jcore.version}</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>${poi.version}</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version> </dependency> <!-- 移除slf4j-simple依赖 -->
三、通过TestNG配置文件直接控制日志级别
如果上述方法未生效,可在TestNG的XML配置文件中直接指定目标类的日志级别:
<suite name="Automation Suite"> <!-- 设置Utils类日志级别为WARN --> <parameter name="org.testng.internal.Utils.level" value="WARN"/> <!-- 其他测试类、组或监听器配置 --> </suite>
内容的提问来源于stack exchange,提问作者Sim
相关产品推荐
相关产品推荐

