How to show log4j output in surefire test resports

Serxipc picture Serxipc · Dec 7, 2010 · Viewed 14.6k times · Source

When a test fails in maven the surefire test report xml files in target/surefire-reports/TEST-<test-name>.xml only shows the Standard Output System.output or Standard Error System.err

When I use the jdk java.util.logging.Logger all the logging shows in the Standard Error <system-err> tag, but it does not show when I use log4j.

The logging with log4j is working fine through a FileAppender and a ConsoleAppender. It shows in the full console output, but not on the individual test report files.

  • Can I configure log4j to redirect its output to System.out so it shows in surefire rerports?
  • Can I tell surefire to also show the log4j debug logging?

Answer

carlspring picture carlspring · Aug 30, 2011
  • Option one:

    For standard logging (System.out/System.err), you can have the following output:

        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.8.1</version>
    
            <configuration>
                <redirectTestOutputToFile>true</redirectTestOutputToFile>
            </configuration>
        </plugin>
    

    This will generate output files for each of the tests.

  • Option two:

    For a log4j configuration you can create a custom log4j.xml / log4j.properties and simply place it under src/test/resources.