SpringJUnit4ClassRunner plus Log4j2 plus log4j2.xml outside class pathpath

I have several tests that I am running with SpringJUnit4ClassRunner

. I also just switched to Log4j2 and now I'm having problems loading my config file log4j2.xml

, I always get this error:

ERROR StatusLogger No log4j2 configuration file found. Using default 
      configuration: logging only errors to the console.

      

The problem is that the config file is not on the classpath. Instead, I save it in a separate folder along with other configuration data outside of the class. When I run the test, I have already installed -Dconfig=/path/to/config/folder

. I know that I can also pass -Dlog4j.configurationFile=...

when running tests, but I don't want to.

What I want to do is use Spring's annotation based construct to write a config class in which I programmatically set the location for Log4j. This is possible if I have a web application , but I don't know how to apply it to SpringJUnit4ClassRunner

.

@Configuration
public class Log4jConfiguration {
    /** Initialize Log4j2 with a custom location for the log4j2.xml **/
}

      

+3


source to share


1 answer


Maybe your Maven, specify:

<resources>
    <resource>
        <directory>${basedir}/src/main/java</directory>
        <includes>
            <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
    </resource>
    <resource>
        <directory>${basedir}/src/main/resources</directory>
        <includes>
            <include>**/*.properties</include>
            <include>**/*.xml</include><!---->
        </includes>
        <filtering>false</filtering>
    </resource>
</resources>

      



Check it.

0


source







All Articles