Search code examples
log4jqaf

QAF | Switch off logging to console (Eg. INFO c.q.q.a.ui.WebDriverCommandLogger - command: )


I would like to switch off the logging in the console which happens during the run. I have tried adding log4j.rootCategory=OFF in log4j.properties inside the "resources" folder. I have also seen some answers asking to move log4j.properties inside the "src" folder if the config is not picking up during the run. I have tried all possible workarounds.

Even if any direct java solution is available to switch off "INFO c.q.q.a.ui.WebDriverCommandLogger - command:" into console will be also helpful.

log4j.properties:

log4j.rootCategory=OFF
log4j.appender.console.Follow=true
#log4j.logger.com.qmetry.qaf=CONSOLE, LOGFILE
# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE

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

log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%c{1}] - %m%n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=${outputDir}/isfw.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.Threshold=DEBUG
log4j.appender.LOGFILE.Follow=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=[%t] %d{HH:mm:ss,SSS} %-5p [%c] %m%n
#%-4r [%t] %-5p %c %x - %m%n

log4j.logger.com.qmetry.qaf.automation.integration=resultUpdationLog

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.resultUpdationLog=org.apache.log4j.FileAppender
log4j.appender.resultUpdationLog.File=resultUpdation.log
log4j.appender.resultUpdationLog.Append=true
log4j.appender.resultUpdationLog.Threshold=INFO
log4j.appender.resultUpdationLog.layout=org.apache.log4j.PatternLayout
log4j.appender.resultUpdationLog.layout.ConversionPattern=%-6r [%t] %-5p %c %x - %m%n

log4j.additivity.com.qmetry.qaf.automation.step=false
log4j.logger.com.qmetry.qaf.automation.step=DEBUG, SCENARIOLOGFILE
log4j.appender.SCENARIOLOGFILE=org.apache.log4j.RollingFileAppender
log4j.appender.SCENARIOLOGFILE.File=${outputDir}/scenario.log
log4j.appender.SCENARIOLOGFILE.Append=true
log4j.appender.SCENARIOLOGFILE.Threshold=DEBUG
log4j.appender.SCENARIOLOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.SCENARIOLOGFILE.layout.ConversionPattern=%d{HH:mm:ss} %m%n

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

Maven - pom.xml

<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.qmetry</groupId>
    <artifactId>qaf-blank-project-maven</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>qaf-blank-project-maven</name>
    <url>http://maven.apache.org</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <testSuiteFile>config/testrun_config.xml</testSuiteFile>
        <sourceVersion>1.8</sourceVersion>
        <targetVersion>1.8</targetVersion>
        <qaf.version>3.0.0</qaf.version>
        <qaf-support-ws.version>3.0.0</qaf-support-ws.version>
        <selenium.version>3.141.59</selenium.version>
        <test.results.dir>test-results</test.results.dir>
        <run.time>${maven.build.timestamp}</run.time>
        <lib.dir>${project.basedir}/lib</lib.dir>
        <resource.dir>${project.basedir}/resources</resource.dir>
        <output.dir>${test.results.dir}/${run.time}</output.dir>
        <maven.build.timestamp.format>dd_MMM_yyyy_hh_mm_aa</maven.build.timestamp.format>
        <testng.report.title>IQe - Rapid Test Report</testng.report.title>
    </properties>
    <repositories>
        <repository>
            <id>qaf</id>
            <url>https://qmetry.github.io/qaf/dist</url>
        </repository>
        <repository>
            <id>jai</id>
            <url>https://repository.jboss.org/nexus/content/repositories/thirdparty-releases</url>
        </repository>
    </repositories>
    <dependencies>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>${selenium.version}</version>
        </dependency>
        <dependency>
            <groupId>com.qmetry</groupId>
            <artifactId>qaf</artifactId>
            <version>${qaf.version}</version>
        </dependency>
        <dependency>
            <groupId>com.qmetry</groupId>
            <artifactId>qaf-support</artifactId>
            <version>${qaf.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>com.qmetry</groupId>
                    <artifactId>qaf</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.qmetry</groupId>
            <artifactId>qaf-support-ws</artifactId>
            <version>${qaf-support-ws.version}</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <compilerVersion>${sourceVersion}</compilerVersion>
                    <source>${sourceVersion}</source>
                    <target>${targetVersion}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>aspectj-maven-plugin</artifactId>
                <version>1.8</version>
                <configuration>
                    <source>${sourceVersion}</source>
                    <target>${targetVersion}</target>
                    <showWeaveInfo>true</showWeaveInfo>
                    <complianceLevel>${sourceVersion}</complianceLevel>
                    <aspectLibraries>
                        <aspectLibrary>
                            <groupId>com.qmetry</groupId>
                            <artifactId>qaf</artifactId>
                        </aspectLibrary>
                    </aspectLibraries>
                </configuration>
            </plugin>
            <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>
        </plugins>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.codehaus.mojo</groupId>
                                        <artifactId>aspectj-maven-plugin</artifactId>
                                        <versionRange>[1.0,)</versionRange>
                                        <goals>
                                            <goal>test-compile</goal>
                                            <goal>compile</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute />
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

Solution

  • As mentioned by @user861594 I have added the below dependency to pom.xml. After adding the below dependency "Log4j.properties" inside the "resources" folder started working.

    <dependency>
          <groupId>org.apache.logging.log4j</groupId>
          <artifactId>log4j-slf4j-impl</artifactId>
          <version>2.14.1</version>
          <scope>test</scope>
    </dependency>