如何在 QAF / Qmetry 框架中设置日志级别?

问题描述

我想在 QAF / QMetry 框架中自动运行期间降低控制台中显示的日志级别。当我尝试在 log4j.properties 中玩耍时,它在控制台日志记录中没有显示任何差异。在 log4j.properties 中尝试了以下操作:

log4j.logger.com.qmetry.qaf=ERROR
log4j.rootCategory=off

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=ERROR
log4j.appender.CONSOLE.Follow=false

注意:没有看到按照以下属性中提到的方式创建的任何 ws.log 文件


log4j.logger.com.qmetry.qaf.automation.ws=DEBUG,file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.file=${outputDir}/ws.log
log4j.appender.file.MaxFileSize=1GB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.conversionPattern=%d{[dd.MM.yyyy] [HH:mm:ss]} %p [%t] %c (%F:%L) - %m%n

Log4j 是在 Maven 配置中设置的:(我也尝试将 log4j 配置放在 src 文件夹中)。

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.9</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>${testSuiteFile}</suiteXmlFile>
                    </suiteXmlFiles>
                    <reportsDirectory>${test.results.dir}/${run.time}</reportsDirectory>
                    <systemPropertyVariables>
                        <org.uncommons.reportng.xml-dialect>testng</org.uncommons.reportng.xml-dialect>
                        <org.uncommons.reportng.escape-output>false</org.uncommons.reportng.escape-output>
                        <log4j.configuration>file:///${resource.dir}/log4j.properties</log4j.configuration>
                        <outputDir>${output.dir}</outputDir>
                        <test.results.dir>${output.dir}/html</test.results.dir>
                        <json.report.root.dir>${test.results.dir}</json.report.root.dir>
                        <json.report.dir>${output.dir}/json</json.report.dir>
                        <selenium.screenshots.dir>${output.dir}/img</selenium.screenshots.dir>
                        <selenium.screenshots.relative.path>../img</selenium.screenshots.relative.path>
</systemPropertyVariables>
</configuration>
</plugin>

解决方法

您需要设置 log4j 属性文件位置。参考示例 ant 或 maven 项目。如果您不熟悉,最简单的方法是将 log4j.properties 文件移动到 src 目录下。