diff --git a/logging/log4j2/pom.xml b/logging/log4j2/pom.xml
index 537427e232..01cdfc5872 100644
--- a/logging/log4j2/pom.xml
+++ b/logging/log4j2/pom.xml
@@ -31,6 +31,13 @@
2.8.2
+
+
+ com.fasterxml.jackson.dataformat
+ jackson-dataformat-xml
+ 2.8.2
+
+
org.apache.logging.log4j
diff --git a/logging/log4j2/src/test/java/com/baeldung/logging/log4j2/tests/AsyncFileAppenderUsingJsonLayoutTest.java b/logging/log4j2/src/test/java/com/baeldung/logging/log4j2/tests/AsyncFileAppenderUsingJsonLayoutTest.java
index c9ce0c2828..1006b38b14 100644
--- a/logging/log4j2/src/test/java/com/baeldung/logging/log4j2/tests/AsyncFileAppenderUsingJsonLayoutTest.java
+++ b/logging/log4j2/src/test/java/com/baeldung/logging/log4j2/tests/AsyncFileAppenderUsingJsonLayoutTest.java
@@ -1,19 +1,14 @@
package com.baeldung.logging.log4j2.tests;
-import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.junit.LoggerContextRule;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
-import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
-import java.util.List;
-import java.util.stream.Collectors;
import static org.junit.Assert.assertTrue;
@@ -21,7 +16,7 @@ import static org.junit.Assert.assertTrue;
public class AsyncFileAppenderUsingJsonLayoutTest {
@Rule
- public LoggerContextRule contextRule = new LoggerContextRule("log4j2-async-file-appender_json-layout_colored.xml");
+ public LoggerContextRule contextRule = new LoggerContextRule("log4j2-async-file-appender_json-layout.xml");
@Test
public void givenLoggerWithAsyncConfig_shouldLogToJsonFile() throws Exception {
@@ -30,16 +25,7 @@ public class AsyncFileAppenderUsingJsonLayoutTest {
for (int i = 0; i < count; i++) {
logger.info("This is async JSON message #{} at INFO level.", count);
}
- ObjectMapper objectMapper = new ObjectMapper();
- List logEvents = Files.readAllLines(Paths.get("target/logfile.json")).stream()
- .map(s -> {
- try {
- return objectMapper.readValue(s.getBytes(), LogEvent.class);
- } catch (IOException e) {
- throw new RuntimeException("Failed to import LogEvent!", e);
- }
- })
- .collect(Collectors.toList());
- assertTrue(logEvents.size() <= count);
+ long logEventsCount = Files.lines(Paths.get("target/logfile.json")).count();
+ assertTrue(logEventsCount == count);
}
}
diff --git a/logging/log4j2/src/test/java/com/baeldung/logging/log4j2/tests/RollingFileAppenderUsingXMLLayoutTest.java b/logging/log4j2/src/test/java/com/baeldung/logging/log4j2/tests/RollingFileAppenderUsingXMLLayoutTest.java
new file mode 100644
index 0000000000..f455003b08
--- /dev/null
+++ b/logging/log4j2/src/test/java/com/baeldung/logging/log4j2/tests/RollingFileAppenderUsingXMLLayoutTest.java
@@ -0,0 +1,34 @@
+package com.baeldung.logging.log4j2.tests;
+
+import org.apache.logging.log4j.Logger;
+import org.apache.logging.log4j.junit.LoggerContextRule;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.stream.Collectors;
+
+import static org.junit.Assert.assertTrue;
+
+@RunWith(JUnit4.class)
+public class RollingFileAppenderUsingXMLLayoutTest {
+
+ @Rule
+ public LoggerContextRule contextRule = new LoggerContextRule("log4j2-rolling-file-appender_xml-layout.xml");
+
+ @Test
+ public void givenLoggerWithRollingFileConfig_shouldLogToXMLFile() throws Exception {
+ Logger logger = contextRule.getLogger(getClass().getSimpleName());
+ final int count = 88;
+ for (int i = 0; i < count; i++) {
+ logger.info("This is rolling file XML message #{} at INFO level.", count);
+ }
+ String[] logEvents = Files.readAllLines(Paths.get("target/logfile.xml")).stream()
+ .collect(Collectors.joining(System.lineSeparator()))
+ .split("\\n\\n+");
+ assertTrue(logEvents.length == count);
+ }
+}
diff --git a/logging/log4j2/src/test/resources/log4j2-async-file-appender_json-layout_colored.xml b/logging/log4j2/src/test/resources/log4j2-async-file-appender_json-layout.xml
similarity index 100%
rename from logging/log4j2/src/test/resources/log4j2-async-file-appender_json-layout_colored.xml
rename to logging/log4j2/src/test/resources/log4j2-async-file-appender_json-layout.xml
diff --git a/logging/log4j2/src/test/resources/log4j2-rolling-file-appender_xml-layout.xml b/logging/log4j2/src/test/resources/log4j2-rolling-file-appender_xml-layout.xml
new file mode 100644
index 0000000000..8d47061a9e
--- /dev/null
+++ b/logging/log4j2/src/test/resources/log4j2-rolling-file-appender_xml-layout.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+