I'm trying to log all DEBUG
messages to console during testing in maven. For this purpose I created a file src/test/resources/log4j.properties
, which is going to override the configuration I already have in src/main/resources/log4j.properties
. Unfortunately such an overriding is not happening. Why and how to fix it?
It should work as it is, and it works. The problem is somewhere else.
ps. I had a mess with loggers in my classpath: jog4j, slf4j, logback (from other dependencies). As I understand, all of them are in conflict. I didn't clean this mess yet, and I still don't know how to make all packages to use one logging facility and one configuration.
Rename your test configuration file to e.g. log4j-surefire.properties
and configure log4j to pick it up during surefire execution:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.6</version>
<configuration>
<systemPropertyVariables>
<log4j.configuration>file:${project.build.testOutputDirectory}/log4j-surefire.properties</log4j.configuration>
</systemPropertyVariables>
</configuration>
</plugin>
log4j
usage together with slf4j
. –
Ruinous It should work as it is, and it works. The problem is somewhere else.
ps. I had a mess with loggers in my classpath: jog4j, slf4j, logback (from other dependencies). As I understand, all of them are in conflict. I didn't clean this mess yet, and I still don't know how to make all packages to use one logging facility and one configuration.
Beware of changed version for that, with 2.17.1 of log4j at least, you'll have to change it from log4j.configuration
to log4j.configurationFile
to avoid having
ERROR StatusLogger Reconfiguration failed: No configuration found for '18b4aac2' at 'null' in 'null'
Here an example
<plugin>
<!-- DOC http://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html -->
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.surefire.version}</version>
<!-- enables java assertions for tests -->
<configuration>
<enableAssertions>true</enableAssertions>
<systemPropertyVariables>
<log4j.configurationFile>src/test/resources/log4j2_for_surefire.xml</log4j.configurationFile>
</systemPropertyVariables>
</configuration>
</plugin>
© 2022 - 2024 — McMap. All rights reserved.
slf4j-jdk14
instead ofslf4j-log4j
. Everything works fine without the trick offered by Robert. – Ruinous