QAF如何关闭控制台输出的WebDriverCommandLogger INFO级别日志
解决方案
方案1:修正log4j.properties配置(推荐)
你当前配置未生效的核心原因是:log4j.rootCategory=OFF 虽然关闭了根日志,但QAF的特定类日志是单独配置了输出级别,且你配置里还有log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE 绑定了控制台输出,另外目标日志WebDriverCommandLogger属于com.qmetry.qaf.automation.ui包,需要单独指定级别关闭。
直接在你现有的log4j.properties中添加以下2行配置即可:
# 单独关闭WebDriverCommandLogger的所有日志 log4j.logger.com.qmetry.qaf.automation.ui.WebDriverCommandLogger=OFF # 若要完全禁用所有控制台输出,直接修改控制台输出阈值为OFF log4j.appender.CONSOLE.Threshold=OFF
如果要彻底关闭所有控制台日志,还可以注释掉所有配置中绑定了CONSOLE的logger行,比如注释掉log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE这行。
方案2:Java代码强制关闭(适合配置加载失败的场景)
在测试用例执行前的初始化逻辑(比如测试基类的@BeforeSuite方法,或者项目启动监听器)中添加以下代码,直接强制修改日志级别:
import org.apache.log4j.Logger; import org.apache.log4j.Level; // 关闭指定类的日志 Logger commandLogger = Logger.getLogger("com.qmetry.qaf.automation.ui.WebDriverCommandLogger"); commandLogger.setLevel(Level.OFF); // 如果要完全关闭所有控制台日志,可以直接移除ConsoleAppender Logger rootLogger = Logger.getRootLogger(); rootLogger.removeAppender("CONSOLE");
额外检查项
你当前pom里已经指定了log4j配置路径是file:///${resource.dir}/log4j.properties,确认resources目录下的log4j.properties在maven编译后被正确打包到classes根目录即可,不需要移动到src目录。
内容的提问来源于stack exchange,提问作者Renish
相关产品推荐
相关产品推荐

