Configure Log4j2 for JUnit Tests

Learn some recommended ways to configure Log4j2 – specific to junit testcases and different from used in production.

Log4j2 Config for JUnit

Learn to use a different Log4j2 configuration file for JUnit tests is a recommended approach. We can apply two ways to configure Log4j2 specific to tests and that is different from the production logging config file.

1. Place log4j2-test.xml in test/resources Folder

Place the log4j2-test.xml file in ‘src/test/resources‘ folder.

By placing a log4j2-test.xml into this directory will cause it to be used instead of a log4j2.xml or log4j2.json that might be present in ‘src/main/resources‘ folder.

Log4j2 Config for JUnit
Log4j2 Config for JUnit

2. Load from external locations with ‘log4j.configurationFile‘ Property

Another way to introduce a different log configuration file is – to set log4j.configurationFile property in @BeforeAll annotation in any test class.

For example, we can create test specific logging configuration file log4j2-testConfig.xml and place it in some external folder. Now let use this file in JUnit tests.

import java.net.MalformedURLException; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.junit.BeforeClass; import org.junit.Test; public class HelloWorldTest {	private static Logger LOGGER = null;	@BeforeClass	public static void setLogger() throws MalformedURLException	{	System.setProperty("log4j.configurationFile","log4j2-testConfig.xml");	LOGGER = LogManager.getLogger();	}	@Test	public void testOne()	{	//test code	} }

Drop me your questions related to log4j2 configuration for junit tests in the comments section.

Happy Learning !!

Comments

Subscribe
8 Comments
Most Voted
Newest Oldest
Inline Feedbacks
View all comments

About Us

HowToDoInJava provides tutorials and how-to guides on Java and related technologies.

It also shares the best practices, algorithms & solutions and frequently asked interview questions.