From 1f6fde1895be5e044a8343aae1728007a41f1de9 Mon Sep 17 00:00:00 2001
From: suvrat1629
Date: Tue, 14 Jan 2025 08:00:04 +0000
Subject: [PATCH 1/8] Script resolution
---
.../log4j/core/filter/ScriptFilter.java | 80 +++++++++----------
1 file changed, 37 insertions(+), 43 deletions(-)
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ScriptFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ScriptFilter.java
index 066dc7aa137..18dc16567fb 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ScriptFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ScriptFilter.java
@@ -42,9 +42,9 @@
@Plugin(name = "ScriptFilter", category = Node.CATEGORY, elementType = Filter.ELEMENT_TYPE, printObject = true)
public final class ScriptFilter extends AbstractFilter {
- private static org.apache.logging.log4j.Logger logger = StatusLogger.getLogger();
+ private static final org.apache.logging.log4j.Logger LOGGER = StatusLogger.getLogger();
- private final AbstractScript script;
+ private AbstractScript script;
private final Configuration configuration;
private ScriptFilter(
@@ -57,58 +57,62 @@ private ScriptFilter(
this.configuration = configuration;
}
+ @Override
+ public void start() {
+ super.start();
+ if (script instanceof ScriptRef) {
+ AbstractScript resolvedScript = configuration.getScriptManager().getScript(script.getName());
+ if (resolvedScript == null) {
+ LOGGER.error("No script with name {} has been declared.", script.getName());
+ // Optionally: mark the filter as unusable or handle failure gracefully
+ return;
+ }
+ this.script = resolvedScript; // Update to resolved script
+ } else {
+ if (!configuration.getScriptManager().addScript(script)) {
+ LOGGER.error("Failed to add script {} to the ScriptManager.", script.getName());
+ }
+ }
+ }
+
@Override
public Result filter(
final Logger logger, final Level level, final Marker marker, final String msg, final Object... params) {
- final SimpleBindings bindings = new SimpleBindings();
- bindings.put("logger", logger);
- bindings.put("level", level);
- bindings.put("marker", marker);
- bindings.put("message", new SimpleMessage(msg));
- bindings.put("parameters", params);
- bindings.put("throwable", null);
- bindings.putAll(configuration.getProperties());
- bindings.put("substitutor", configuration.getStrSubstitutor());
- final Object object = configuration.getScriptManager().execute(script.getName(), bindings);
- return object == null || !Boolean.TRUE.equals(object) ? onMismatch : onMatch;
+ return executeScript(logger, level, marker, new SimpleMessage(msg), params, null);
}
@Override
public Result filter(
final Logger logger, final Level level, final Marker marker, final Object msg, final Throwable t) {
- final SimpleBindings bindings = new SimpleBindings();
- bindings.put("logger", logger);
- bindings.put("level", level);
- bindings.put("marker", marker);
- bindings.put("message", msg instanceof String ? new SimpleMessage((String) msg) : new ObjectMessage(msg));
- bindings.put("parameters", null);
- bindings.put("throwable", t);
- bindings.putAll(configuration.getProperties());
- bindings.put("substitutor", configuration.getStrSubstitutor());
- final Object object = configuration.getScriptManager().execute(script.getName(), bindings);
- return object == null || !Boolean.TRUE.equals(object) ? onMismatch : onMatch;
+ Message message = msg instanceof String ? new SimpleMessage((String) msg) : new ObjectMessage(msg);
+ return executeScript(logger, level, marker, message, null, t);
}
@Override
public Result filter(
final Logger logger, final Level level, final Marker marker, final Message msg, final Throwable t) {
+ return executeScript(logger, level, marker, msg, null, t);
+ }
+
+ @Override
+ public Result filter(final LogEvent event) {
final SimpleBindings bindings = new SimpleBindings();
- bindings.put("logger", logger);
- bindings.put("level", level);
- bindings.put("marker", marker);
- bindings.put("message", msg);
- bindings.put("parameters", null);
- bindings.put("throwable", t);
+ bindings.put("logEvent", event);
bindings.putAll(configuration.getProperties());
bindings.put("substitutor", configuration.getStrSubstitutor());
final Object object = configuration.getScriptManager().execute(script.getName(), bindings);
return object == null || !Boolean.TRUE.equals(object) ? onMismatch : onMatch;
}
- @Override
- public Result filter(final LogEvent event) {
+ private Result executeScript(
+ final Logger logger, final Level level, final Marker marker, final Message msg, final Object[] params, final Throwable t) {
final SimpleBindings bindings = new SimpleBindings();
- bindings.put("logEvent", event);
+ bindings.put("logger", logger);
+ bindings.put("level", level);
+ bindings.put("marker", marker);
+ bindings.put("message", msg);
+ bindings.put("parameters", params);
+ bindings.put("throwable", t);
bindings.putAll(configuration.getProperties());
bindings.put("substitutor", configuration.getStrSubstitutor());
final Object object = configuration.getScriptManager().execute(script.getName(), bindings);
@@ -145,16 +149,6 @@ public static ScriptFilter createFilter(
LOGGER.error("Script support is not enabled");
return null;
}
- if (script instanceof ScriptRef) {
- if (configuration.getScriptManager().getScript(script.getName()) == null) {
- logger.error("No script with name {} has been declared.", script.getName());
- return null;
- }
- } else {
- if (!configuration.getScriptManager().addScript(script)) {
- return null;
- }
- }
return new ScriptFilter(script, configuration, match, mismatch);
}
From e38fb5caac526d6772865d3fbf324f18eb0e03cc Mon Sep 17 00:00:00 2001
From: suvrat1629
Date: Tue, 14 Jan 2025 10:04:40 +0000
Subject: [PATCH 2/8] script res
---
.../src/test/resources/log4j-script-filters.xml | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/log4j-core-test/src/test/resources/log4j-script-filters.xml b/log4j-core-test/src/test/resources/log4j-script-filters.xml
index 12e88c8bdc6..722a069bafb 100644
--- a/log4j-core-test/src/test/resources/log4j-script-filters.xml
+++ b/log4j-core-test/src/test/resources/log4j-script-filters.xml
@@ -18,7 +18,13 @@
-
+ [suvrat@suvrat logging-log4j2]$ git push
+Username for 'https://github.com': suvrat1629
+Password for 'https://suvrat1629@github.com':
+remote: Support for password authentication was removed on August 13, 2021.
+remote: Please see https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
+fatal: Authentication failed for 'https://github.com/Suvrat1629/logging-log4j2.git/'
+
From 92f8cbefb1e70812933d69a2c8a7a461789af5b4 Mon Sep 17 00:00:00 2001
From: suvrat1629
Date: Tue, 14 Jan 2025 11:31:39 +0000
Subject: [PATCH 3/8] minor fix
---
.../org/apache/logging/log4j/core/filter/ScriptFilter.java | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ScriptFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ScriptFilter.java
index 18dc16567fb..acb5be3b969 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ScriptFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ScriptFilter.java
@@ -105,7 +105,12 @@ public Result filter(final LogEvent event) {
}
private Result executeScript(
- final Logger logger, final Level level, final Marker marker, final Message msg, final Object[] params, final Throwable t) {
+ final Logger logger,
+ final Level level,
+ final Marker marker,
+ final Message msg,
+ final Object[] params,
+ final Throwable t) {
final SimpleBindings bindings = new SimpleBindings();
bindings.put("logger", logger);
bindings.put("level", level);
From af0cb3a10b41e5ece01ed51af64930afddb33c2a Mon Sep 17 00:00:00 2001
From: suvrat1629
Date: Fri, 24 Jan 2025 20:42:39 +0530
Subject: [PATCH 4/8] doConfigure()
---
.../${test:logging.path}/AsyncLoggerTest.log | 75 +++++++
.../${test:logging.path}/rollingtest.1.rolled | 33 +++
.../rollingtest.10.rolled | 32 +++
.../rollingtest.11.rolled | 32 +++
.../rollingtest.12.rolled | 32 +++
.../rollingtest.13.rolled | 32 +++
.../rollingtest.14.rolled | 32 +++
.../rollingtest.15.rolled | 32 +++
.../${test:logging.path}/rollingtest.2.rolled | 33 +++
.../${test:logging.path}/rollingtest.3.rolled | 33 +++
.../${test:logging.path}/rollingtest.4.rolled | 32 +++
.../${test:logging.path}/rollingtest.5.rolled | 32 +++
.../${test:logging.path}/rollingtest.6.rolled | 32 +++
.../${test:logging.path}/rollingtest.7.rolled | 32 +++
.../${test:logging.path}/rollingtest.8.rolled | 32 +++
.../${test:logging.path}/rollingtest.9.rolled | 32 +++
.../${test:logging.path}/rollingtest.current | 17 ++
.../${test:logging.path}/rollingtest.log | 5 +
.../${test:logging.path}/rollingtest.log.1 | 33 +++
.../${test:logging.path}/rollingtest.log.10 | 32 +++
.../${test:logging.path}/rollingtest.log.11 | 32 +++
.../${test:logging.path}/rollingtest.log.12 | 32 +++
.../${test:logging.path}/rollingtest.log.13 | 32 +++
.../${test:logging.path}/rollingtest.log.14 | 32 +++
.../${test:logging.path}/rollingtest.log.15 | 32 +++
.../${test:logging.path}/rollingtest.log.16 | 32 +++
.../${test:logging.path}/rollingtest.log.17 | 32 +++
.../${test:logging.path}/rollingtest.log.18 | 32 +++
.../${test:logging.path}/rollingtest.log.19 | 32 +++
.../${test:logging.path}/rollingtest.log.2 | 33 +++
.../${test:logging.path}/rollingtest.log.20 | 32 +++
.../${test:logging.path}/rollingtest.log.21 | 32 +++
.../${test:logging.path}/rollingtest.log.22 | 32 +++
.../${test:logging.path}/rollingtest.log.23 | 32 +++
.../${test:logging.path}/rollingtest.log.24 | 32 +++
.../${test:logging.path}/rollingtest.log.25 | 32 +++
.../${test:logging.path}/rollingtest.log.26 | 32 +++
.../${test:logging.path}/rollingtest.log.27 | 32 +++
.../${test:logging.path}/rollingtest.log.28 | 32 +++
.../${test:logging.path}/rollingtest.log.29 | 32 +++
.../${test:logging.path}/rollingtest.log.3 | 33 +++
.../${test:logging.path}/rollingtest.log.30 | 32 +++
.../${test:logging.path}/rollingtest.log.31 | 32 +++
.../${test:logging.path}/rollingtest.log.4 | 32 +++
.../${test:logging.path}/rollingtest.log.5 | 32 +++
.../${test:logging.path}/rollingtest.log.6 | 32 +++
.../${test:logging.path}/rollingtest.log.7 | 32 +++
.../${test:logging.path}/rollingtest.log.8 | 32 +++
.../${test:logging.path}/rollingtest.log.9 | 32 +++
.../test-2025-01-14T06-49-1.log.gz | Bin 0 -> 100 bytes
.../test-2025-01-14T06-49-2.log.gz | Bin 0 -> 102 bytes
.../test-2025-01-14T06-49-3.log.gz | Bin 0 -> 102 bytes
.../test-2025-01-14T06-49-4.log.gz | Bin 0 -> 102 bytes
.../test-2025-01-14T06-49-5.log.gz | Bin 0 -> 101 bytes
.../test-2025-01-14T06-49-6.log.gz | Bin 0 -> 101 bytes
.../test-2025-01-14T06-49-7.log | 4 +
.../appender/HttpAppenderBuilderTest.java | 128 ++++++++++++
.../appender/HttpAppenderBuilderTest.java | 128 ++++++++++++
.../core/config/AbstractConfiguration.java | 189 ++++++++++++------
59 files changed, 1958 insertions(+), 66 deletions(-)
create mode 100644 log4j-core-test/${test:logging.path}/AsyncLoggerTest.log
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.1.rolled
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.10.rolled
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.11.rolled
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.12.rolled
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.13.rolled
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.14.rolled
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.15.rolled
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.2.rolled
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.3.rolled
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.4.rolled
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.5.rolled
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.6.rolled
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.7.rolled
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.8.rolled
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.9.rolled
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.current
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.1
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.10
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.11
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.12
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.13
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.14
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.15
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.16
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.17
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.18
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.19
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.2
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.20
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.21
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.22
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.23
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.24
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.25
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.26
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.27
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.28
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.29
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.3
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.30
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.31
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.4
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.5
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.6
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.7
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.8
create mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.9
create mode 100644 log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-1.log.gz
create mode 100644 log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-2.log.gz
create mode 100644 log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-3.log.gz
create mode 100644 log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-4.log.gz
create mode 100644 log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-5.log.gz
create mode 100644 log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-6.log.gz
create mode 100644 log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-7.log
create mode 100644 log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/HttpAppenderBuilderTest.java
create mode 100644 log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpAppenderBuilderTest.java
diff --git a/log4j-core-test/${test:logging.path}/AsyncLoggerTest.log b/log4j-core-test/${test:logging.path}/AsyncLoggerTest.log
new file mode 100644
index 00000000000..c83309b3595
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/AsyncLoggerTest.log
@@ -0,0 +1,75 @@
+INFO c.f.Bar mapvalue [stackvalue] {KEY=mapvalue, configProp=configValue, configProp2=configValue2} Async logger msg
+java.lang.InternalError: this is not a real error
+ at org.apache.logging.log4j.core.async.AsyncLoggerThreadContextTest.testAsyncLogWritesToLog(AsyncLoggerThreadContextTest.java:64)
+ at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
+ at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:569)
+ at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:767)
+ at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
+ at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
+ at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
+ at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
+ at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
+ at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
+ at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
+ at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
+ at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
+ at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
+ at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
+ at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
+ at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
+ at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$8(TestMethodTestDescriptor.java:217)
+ at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+ at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)
+ at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)
+ at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
+ at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:156)
+ at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+ at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146)
+ at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+ at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144)
+ at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+ at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143)
+ at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
+ at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
+ at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160)
+ at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+ at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146)
+ at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+ at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144)
+ at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+ at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143)
+ at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100)
+ at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
+ at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
+ at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160)
+ at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+ at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146)
+ at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
+ at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144)
+ at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
+ at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143)
+ at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100)
+ at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
+ at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
+ at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
+ at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198)
+ at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169)
+ at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93)
+ at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58)
+ at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141)
+ at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57)
+ at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103)
+ at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85)
+ at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
+ at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56)
+ at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)
+ at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)
+ at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:120)
+ at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
+ at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
+ at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
+ at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
+
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.1.rolled b/log4j-core-test/${test:logging.path}/rollingtest.1.rolled
new file mode 100644
index 00000000000..ec1efbe7f1b
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.1.rolled
@@ -0,0 +1,33 @@
+This is test message number 0
+This is test message number 1
+This is test message number 2
+This is test message number 3
+This is test message number 4
+This is test message number 5
+This is test message number 6
+This is test message number 7
+This is test message number 8
+This is test message number 9
+This is test message number 10
+This is test message number 11
+This is test message number 12
+This is test message number 13
+This is test message number 14
+This is test message number 15
+This is test message number 16
+This is test message number 17
+This is test message number 18
+This is test message number 19
+This is test message number 20
+This is test message number 21
+This is test message number 22
+This is test message number 23
+This is test message number 24
+This is test message number 25
+This is test message number 26
+This is test message number 27
+This is test message number 28
+This is test message number 29
+This is test message number 30
+This is test message number 31
+This is test message number 32
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.10.rolled b/log4j-core-test/${test:logging.path}/rollingtest.10.rolled
new file mode 100644
index 00000000000..522a0dfd44f
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.10.rolled
@@ -0,0 +1,32 @@
+This is test message number 291
+This is test message number 292
+This is test message number 293
+This is test message number 294
+This is test message number 295
+This is test message number 296
+This is test message number 297
+This is test message number 298
+This is test message number 299
+This is test message number 300
+This is test message number 301
+This is test message number 302
+This is test message number 303
+This is test message number 304
+This is test message number 305
+This is test message number 306
+This is test message number 307
+This is test message number 308
+This is test message number 309
+This is test message number 310
+This is test message number 311
+This is test message number 312
+This is test message number 313
+This is test message number 314
+This is test message number 315
+This is test message number 316
+This is test message number 317
+This is test message number 318
+This is test message number 319
+This is test message number 320
+This is test message number 321
+This is test message number 322
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.11.rolled b/log4j-core-test/${test:logging.path}/rollingtest.11.rolled
new file mode 100644
index 00000000000..3a2dd810ad0
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.11.rolled
@@ -0,0 +1,32 @@
+This is test message number 323
+This is test message number 324
+This is test message number 325
+This is test message number 326
+This is test message number 327
+This is test message number 328
+This is test message number 329
+This is test message number 330
+This is test message number 331
+This is test message number 332
+This is test message number 333
+This is test message number 334
+This is test message number 335
+This is test message number 336
+This is test message number 337
+This is test message number 338
+This is test message number 339
+This is test message number 340
+This is test message number 341
+This is test message number 342
+This is test message number 343
+This is test message number 344
+This is test message number 345
+This is test message number 346
+This is test message number 347
+This is test message number 348
+This is test message number 349
+This is test message number 350
+This is test message number 351
+This is test message number 352
+This is test message number 353
+This is test message number 354
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.12.rolled b/log4j-core-test/${test:logging.path}/rollingtest.12.rolled
new file mode 100644
index 00000000000..70563db3e03
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.12.rolled
@@ -0,0 +1,32 @@
+This is test message number 355
+This is test message number 356
+This is test message number 357
+This is test message number 358
+This is test message number 359
+This is test message number 360
+This is test message number 361
+This is test message number 362
+This is test message number 363
+This is test message number 364
+This is test message number 365
+This is test message number 366
+This is test message number 367
+This is test message number 368
+This is test message number 369
+This is test message number 370
+This is test message number 371
+This is test message number 372
+This is test message number 373
+This is test message number 374
+This is test message number 375
+This is test message number 376
+This is test message number 377
+This is test message number 378
+This is test message number 379
+This is test message number 380
+This is test message number 381
+This is test message number 382
+This is test message number 383
+This is test message number 384
+This is test message number 385
+This is test message number 386
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.13.rolled b/log4j-core-test/${test:logging.path}/rollingtest.13.rolled
new file mode 100644
index 00000000000..ca9086946cc
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.13.rolled
@@ -0,0 +1,32 @@
+This is test message number 387
+This is test message number 388
+This is test message number 389
+This is test message number 390
+This is test message number 391
+This is test message number 392
+This is test message number 393
+This is test message number 394
+This is test message number 395
+This is test message number 396
+This is test message number 397
+This is test message number 398
+This is test message number 399
+This is test message number 400
+This is test message number 401
+This is test message number 402
+This is test message number 403
+This is test message number 404
+This is test message number 405
+This is test message number 406
+This is test message number 407
+This is test message number 408
+This is test message number 409
+This is test message number 410
+This is test message number 411
+This is test message number 412
+This is test message number 413
+This is test message number 414
+This is test message number 415
+This is test message number 416
+This is test message number 417
+This is test message number 418
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.14.rolled b/log4j-core-test/${test:logging.path}/rollingtest.14.rolled
new file mode 100644
index 00000000000..5595bdf54a9
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.14.rolled
@@ -0,0 +1,32 @@
+This is test message number 419
+This is test message number 420
+This is test message number 421
+This is test message number 422
+This is test message number 423
+This is test message number 424
+This is test message number 425
+This is test message number 426
+This is test message number 427
+This is test message number 428
+This is test message number 429
+This is test message number 430
+This is test message number 431
+This is test message number 432
+This is test message number 433
+This is test message number 434
+This is test message number 435
+This is test message number 436
+This is test message number 437
+This is test message number 438
+This is test message number 439
+This is test message number 440
+This is test message number 441
+This is test message number 442
+This is test message number 443
+This is test message number 444
+This is test message number 445
+This is test message number 446
+This is test message number 447
+This is test message number 448
+This is test message number 449
+This is test message number 450
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.15.rolled b/log4j-core-test/${test:logging.path}/rollingtest.15.rolled
new file mode 100644
index 00000000000..15d0728ecc5
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.15.rolled
@@ -0,0 +1,32 @@
+This is test message number 451
+This is test message number 452
+This is test message number 453
+This is test message number 454
+This is test message number 455
+This is test message number 456
+This is test message number 457
+This is test message number 458
+This is test message number 459
+This is test message number 460
+This is test message number 461
+This is test message number 462
+This is test message number 463
+This is test message number 464
+This is test message number 465
+This is test message number 466
+This is test message number 467
+This is test message number 468
+This is test message number 469
+This is test message number 470
+This is test message number 471
+This is test message number 472
+This is test message number 473
+This is test message number 474
+This is test message number 475
+This is test message number 476
+This is test message number 477
+This is test message number 478
+This is test message number 479
+This is test message number 480
+This is test message number 481
+This is test message number 482
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.2.rolled b/log4j-core-test/${test:logging.path}/rollingtest.2.rolled
new file mode 100644
index 00000000000..167a15a125a
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.2.rolled
@@ -0,0 +1,33 @@
+This is test message number 33
+This is test message number 34
+This is test message number 35
+This is test message number 36
+This is test message number 37
+This is test message number 38
+This is test message number 39
+This is test message number 40
+This is test message number 41
+This is test message number 42
+This is test message number 43
+This is test message number 44
+This is test message number 45
+This is test message number 46
+This is test message number 47
+This is test message number 48
+This is test message number 49
+This is test message number 50
+This is test message number 51
+This is test message number 52
+This is test message number 53
+This is test message number 54
+This is test message number 55
+This is test message number 56
+This is test message number 57
+This is test message number 58
+This is test message number 59
+This is test message number 60
+This is test message number 61
+This is test message number 62
+This is test message number 63
+This is test message number 64
+This is test message number 65
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.3.rolled b/log4j-core-test/${test:logging.path}/rollingtest.3.rolled
new file mode 100644
index 00000000000..e542a8d9283
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.3.rolled
@@ -0,0 +1,33 @@
+This is test message number 66
+This is test message number 67
+This is test message number 68
+This is test message number 69
+This is test message number 70
+This is test message number 71
+This is test message number 72
+This is test message number 73
+This is test message number 74
+This is test message number 75
+This is test message number 76
+This is test message number 77
+This is test message number 78
+This is test message number 79
+This is test message number 80
+This is test message number 81
+This is test message number 82
+This is test message number 83
+This is test message number 84
+This is test message number 85
+This is test message number 86
+This is test message number 87
+This is test message number 88
+This is test message number 89
+This is test message number 90
+This is test message number 91
+This is test message number 92
+This is test message number 93
+This is test message number 94
+This is test message number 95
+This is test message number 96
+This is test message number 97
+This is test message number 98
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.4.rolled b/log4j-core-test/${test:logging.path}/rollingtest.4.rolled
new file mode 100644
index 00000000000..e33f1a4fb3c
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.4.rolled
@@ -0,0 +1,32 @@
+This is test message number 99
+This is test message number 100
+This is test message number 101
+This is test message number 102
+This is test message number 103
+This is test message number 104
+This is test message number 105
+This is test message number 106
+This is test message number 107
+This is test message number 108
+This is test message number 109
+This is test message number 110
+This is test message number 111
+This is test message number 112
+This is test message number 113
+This is test message number 114
+This is test message number 115
+This is test message number 116
+This is test message number 117
+This is test message number 118
+This is test message number 119
+This is test message number 120
+This is test message number 121
+This is test message number 122
+This is test message number 123
+This is test message number 124
+This is test message number 125
+This is test message number 126
+This is test message number 127
+This is test message number 128
+This is test message number 129
+This is test message number 130
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.5.rolled b/log4j-core-test/${test:logging.path}/rollingtest.5.rolled
new file mode 100644
index 00000000000..444291767de
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.5.rolled
@@ -0,0 +1,32 @@
+This is test message number 131
+This is test message number 132
+This is test message number 133
+This is test message number 134
+This is test message number 135
+This is test message number 136
+This is test message number 137
+This is test message number 138
+This is test message number 139
+This is test message number 140
+This is test message number 141
+This is test message number 142
+This is test message number 143
+This is test message number 144
+This is test message number 145
+This is test message number 146
+This is test message number 147
+This is test message number 148
+This is test message number 149
+This is test message number 150
+This is test message number 151
+This is test message number 152
+This is test message number 153
+This is test message number 154
+This is test message number 155
+This is test message number 156
+This is test message number 157
+This is test message number 158
+This is test message number 159
+This is test message number 160
+This is test message number 161
+This is test message number 162
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.6.rolled b/log4j-core-test/${test:logging.path}/rollingtest.6.rolled
new file mode 100644
index 00000000000..9b2cf66cdd2
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.6.rolled
@@ -0,0 +1,32 @@
+This is test message number 163
+This is test message number 164
+This is test message number 165
+This is test message number 166
+This is test message number 167
+This is test message number 168
+This is test message number 169
+This is test message number 170
+This is test message number 171
+This is test message number 172
+This is test message number 173
+This is test message number 174
+This is test message number 175
+This is test message number 176
+This is test message number 177
+This is test message number 178
+This is test message number 179
+This is test message number 180
+This is test message number 181
+This is test message number 182
+This is test message number 183
+This is test message number 184
+This is test message number 185
+This is test message number 186
+This is test message number 187
+This is test message number 188
+This is test message number 189
+This is test message number 190
+This is test message number 191
+This is test message number 192
+This is test message number 193
+This is test message number 194
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.7.rolled b/log4j-core-test/${test:logging.path}/rollingtest.7.rolled
new file mode 100644
index 00000000000..eb2e566a417
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.7.rolled
@@ -0,0 +1,32 @@
+This is test message number 195
+This is test message number 196
+This is test message number 197
+This is test message number 198
+This is test message number 199
+This is test message number 200
+This is test message number 201
+This is test message number 202
+This is test message number 203
+This is test message number 204
+This is test message number 205
+This is test message number 206
+This is test message number 207
+This is test message number 208
+This is test message number 209
+This is test message number 210
+This is test message number 211
+This is test message number 212
+This is test message number 213
+This is test message number 214
+This is test message number 215
+This is test message number 216
+This is test message number 217
+This is test message number 218
+This is test message number 219
+This is test message number 220
+This is test message number 221
+This is test message number 222
+This is test message number 223
+This is test message number 224
+This is test message number 225
+This is test message number 226
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.8.rolled b/log4j-core-test/${test:logging.path}/rollingtest.8.rolled
new file mode 100644
index 00000000000..2c157c6e6d2
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.8.rolled
@@ -0,0 +1,32 @@
+This is test message number 227
+This is test message number 228
+This is test message number 229
+This is test message number 230
+This is test message number 231
+This is test message number 232
+This is test message number 233
+This is test message number 234
+This is test message number 235
+This is test message number 236
+This is test message number 237
+This is test message number 238
+This is test message number 239
+This is test message number 240
+This is test message number 241
+This is test message number 242
+This is test message number 243
+This is test message number 244
+This is test message number 245
+This is test message number 246
+This is test message number 247
+This is test message number 248
+This is test message number 249
+This is test message number 250
+This is test message number 251
+This is test message number 252
+This is test message number 253
+This is test message number 254
+This is test message number 255
+This is test message number 256
+This is test message number 257
+This is test message number 258
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.9.rolled b/log4j-core-test/${test:logging.path}/rollingtest.9.rolled
new file mode 100644
index 00000000000..b3346f0393f
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.9.rolled
@@ -0,0 +1,32 @@
+This is test message number 259
+This is test message number 260
+This is test message number 261
+This is test message number 262
+This is test message number 263
+This is test message number 264
+This is test message number 265
+This is test message number 266
+This is test message number 267
+This is test message number 268
+This is test message number 269
+This is test message number 270
+This is test message number 271
+This is test message number 272
+This is test message number 273
+This is test message number 274
+This is test message number 275
+This is test message number 276
+This is test message number 277
+This is test message number 278
+This is test message number 279
+This is test message number 280
+This is test message number 281
+This is test message number 282
+This is test message number 283
+This is test message number 284
+This is test message number 285
+This is test message number 286
+This is test message number 287
+This is test message number 288
+This is test message number 289
+This is test message number 290
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.current b/log4j-core-test/${test:logging.path}/rollingtest.current
new file mode 100644
index 00000000000..254ef28877a
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.current
@@ -0,0 +1,17 @@
+This is test message number 483
+This is test message number 484
+This is test message number 485
+This is test message number 486
+This is test message number 487
+This is test message number 488
+This is test message number 489
+This is test message number 490
+This is test message number 491
+This is test message number 492
+This is test message number 493
+This is test message number 494
+This is test message number 495
+This is test message number 496
+This is test message number 497
+This is test message number 498
+This is test message number 499
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log b/log4j-core-test/${test:logging.path}/rollingtest.log
new file mode 100644
index 00000000000..adc06adf539
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log
@@ -0,0 +1,5 @@
+This is test message number 995
+This is test message number 996
+This is test message number 997
+This is test message number 998
+This is test message number 999
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.1 b/log4j-core-test/${test:logging.path}/rollingtest.log.1
new file mode 100644
index 00000000000..ec1efbe7f1b
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.1
@@ -0,0 +1,33 @@
+This is test message number 0
+This is test message number 1
+This is test message number 2
+This is test message number 3
+This is test message number 4
+This is test message number 5
+This is test message number 6
+This is test message number 7
+This is test message number 8
+This is test message number 9
+This is test message number 10
+This is test message number 11
+This is test message number 12
+This is test message number 13
+This is test message number 14
+This is test message number 15
+This is test message number 16
+This is test message number 17
+This is test message number 18
+This is test message number 19
+This is test message number 20
+This is test message number 21
+This is test message number 22
+This is test message number 23
+This is test message number 24
+This is test message number 25
+This is test message number 26
+This is test message number 27
+This is test message number 28
+This is test message number 29
+This is test message number 30
+This is test message number 31
+This is test message number 32
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.10 b/log4j-core-test/${test:logging.path}/rollingtest.log.10
new file mode 100644
index 00000000000..522a0dfd44f
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.10
@@ -0,0 +1,32 @@
+This is test message number 291
+This is test message number 292
+This is test message number 293
+This is test message number 294
+This is test message number 295
+This is test message number 296
+This is test message number 297
+This is test message number 298
+This is test message number 299
+This is test message number 300
+This is test message number 301
+This is test message number 302
+This is test message number 303
+This is test message number 304
+This is test message number 305
+This is test message number 306
+This is test message number 307
+This is test message number 308
+This is test message number 309
+This is test message number 310
+This is test message number 311
+This is test message number 312
+This is test message number 313
+This is test message number 314
+This is test message number 315
+This is test message number 316
+This is test message number 317
+This is test message number 318
+This is test message number 319
+This is test message number 320
+This is test message number 321
+This is test message number 322
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.11 b/log4j-core-test/${test:logging.path}/rollingtest.log.11
new file mode 100644
index 00000000000..3a2dd810ad0
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.11
@@ -0,0 +1,32 @@
+This is test message number 323
+This is test message number 324
+This is test message number 325
+This is test message number 326
+This is test message number 327
+This is test message number 328
+This is test message number 329
+This is test message number 330
+This is test message number 331
+This is test message number 332
+This is test message number 333
+This is test message number 334
+This is test message number 335
+This is test message number 336
+This is test message number 337
+This is test message number 338
+This is test message number 339
+This is test message number 340
+This is test message number 341
+This is test message number 342
+This is test message number 343
+This is test message number 344
+This is test message number 345
+This is test message number 346
+This is test message number 347
+This is test message number 348
+This is test message number 349
+This is test message number 350
+This is test message number 351
+This is test message number 352
+This is test message number 353
+This is test message number 354
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.12 b/log4j-core-test/${test:logging.path}/rollingtest.log.12
new file mode 100644
index 00000000000..70563db3e03
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.12
@@ -0,0 +1,32 @@
+This is test message number 355
+This is test message number 356
+This is test message number 357
+This is test message number 358
+This is test message number 359
+This is test message number 360
+This is test message number 361
+This is test message number 362
+This is test message number 363
+This is test message number 364
+This is test message number 365
+This is test message number 366
+This is test message number 367
+This is test message number 368
+This is test message number 369
+This is test message number 370
+This is test message number 371
+This is test message number 372
+This is test message number 373
+This is test message number 374
+This is test message number 375
+This is test message number 376
+This is test message number 377
+This is test message number 378
+This is test message number 379
+This is test message number 380
+This is test message number 381
+This is test message number 382
+This is test message number 383
+This is test message number 384
+This is test message number 385
+This is test message number 386
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.13 b/log4j-core-test/${test:logging.path}/rollingtest.log.13
new file mode 100644
index 00000000000..ca9086946cc
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.13
@@ -0,0 +1,32 @@
+This is test message number 387
+This is test message number 388
+This is test message number 389
+This is test message number 390
+This is test message number 391
+This is test message number 392
+This is test message number 393
+This is test message number 394
+This is test message number 395
+This is test message number 396
+This is test message number 397
+This is test message number 398
+This is test message number 399
+This is test message number 400
+This is test message number 401
+This is test message number 402
+This is test message number 403
+This is test message number 404
+This is test message number 405
+This is test message number 406
+This is test message number 407
+This is test message number 408
+This is test message number 409
+This is test message number 410
+This is test message number 411
+This is test message number 412
+This is test message number 413
+This is test message number 414
+This is test message number 415
+This is test message number 416
+This is test message number 417
+This is test message number 418
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.14 b/log4j-core-test/${test:logging.path}/rollingtest.log.14
new file mode 100644
index 00000000000..5595bdf54a9
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.14
@@ -0,0 +1,32 @@
+This is test message number 419
+This is test message number 420
+This is test message number 421
+This is test message number 422
+This is test message number 423
+This is test message number 424
+This is test message number 425
+This is test message number 426
+This is test message number 427
+This is test message number 428
+This is test message number 429
+This is test message number 430
+This is test message number 431
+This is test message number 432
+This is test message number 433
+This is test message number 434
+This is test message number 435
+This is test message number 436
+This is test message number 437
+This is test message number 438
+This is test message number 439
+This is test message number 440
+This is test message number 441
+This is test message number 442
+This is test message number 443
+This is test message number 444
+This is test message number 445
+This is test message number 446
+This is test message number 447
+This is test message number 448
+This is test message number 449
+This is test message number 450
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.15 b/log4j-core-test/${test:logging.path}/rollingtest.log.15
new file mode 100644
index 00000000000..15d0728ecc5
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.15
@@ -0,0 +1,32 @@
+This is test message number 451
+This is test message number 452
+This is test message number 453
+This is test message number 454
+This is test message number 455
+This is test message number 456
+This is test message number 457
+This is test message number 458
+This is test message number 459
+This is test message number 460
+This is test message number 461
+This is test message number 462
+This is test message number 463
+This is test message number 464
+This is test message number 465
+This is test message number 466
+This is test message number 467
+This is test message number 468
+This is test message number 469
+This is test message number 470
+This is test message number 471
+This is test message number 472
+This is test message number 473
+This is test message number 474
+This is test message number 475
+This is test message number 476
+This is test message number 477
+This is test message number 478
+This is test message number 479
+This is test message number 480
+This is test message number 481
+This is test message number 482
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.16 b/log4j-core-test/${test:logging.path}/rollingtest.log.16
new file mode 100644
index 00000000000..845506f64e4
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.16
@@ -0,0 +1,32 @@
+This is test message number 483
+This is test message number 484
+This is test message number 485
+This is test message number 486
+This is test message number 487
+This is test message number 488
+This is test message number 489
+This is test message number 490
+This is test message number 491
+This is test message number 492
+This is test message number 493
+This is test message number 494
+This is test message number 495
+This is test message number 496
+This is test message number 497
+This is test message number 498
+This is test message number 499
+This is test message number 500
+This is test message number 501
+This is test message number 502
+This is test message number 503
+This is test message number 504
+This is test message number 505
+This is test message number 506
+This is test message number 507
+This is test message number 508
+This is test message number 509
+This is test message number 510
+This is test message number 511
+This is test message number 512
+This is test message number 513
+This is test message number 514
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.17 b/log4j-core-test/${test:logging.path}/rollingtest.log.17
new file mode 100644
index 00000000000..9d388e2c9ca
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.17
@@ -0,0 +1,32 @@
+This is test message number 515
+This is test message number 516
+This is test message number 517
+This is test message number 518
+This is test message number 519
+This is test message number 520
+This is test message number 521
+This is test message number 522
+This is test message number 523
+This is test message number 524
+This is test message number 525
+This is test message number 526
+This is test message number 527
+This is test message number 528
+This is test message number 529
+This is test message number 530
+This is test message number 531
+This is test message number 532
+This is test message number 533
+This is test message number 534
+This is test message number 535
+This is test message number 536
+This is test message number 537
+This is test message number 538
+This is test message number 539
+This is test message number 540
+This is test message number 541
+This is test message number 542
+This is test message number 543
+This is test message number 544
+This is test message number 545
+This is test message number 546
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.18 b/log4j-core-test/${test:logging.path}/rollingtest.log.18
new file mode 100644
index 00000000000..7edbcec552b
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.18
@@ -0,0 +1,32 @@
+This is test message number 547
+This is test message number 548
+This is test message number 549
+This is test message number 550
+This is test message number 551
+This is test message number 552
+This is test message number 553
+This is test message number 554
+This is test message number 555
+This is test message number 556
+This is test message number 557
+This is test message number 558
+This is test message number 559
+This is test message number 560
+This is test message number 561
+This is test message number 562
+This is test message number 563
+This is test message number 564
+This is test message number 565
+This is test message number 566
+This is test message number 567
+This is test message number 568
+This is test message number 569
+This is test message number 570
+This is test message number 571
+This is test message number 572
+This is test message number 573
+This is test message number 574
+This is test message number 575
+This is test message number 576
+This is test message number 577
+This is test message number 578
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.19 b/log4j-core-test/${test:logging.path}/rollingtest.log.19
new file mode 100644
index 00000000000..746d429dd91
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.19
@@ -0,0 +1,32 @@
+This is test message number 579
+This is test message number 580
+This is test message number 581
+This is test message number 582
+This is test message number 583
+This is test message number 584
+This is test message number 585
+This is test message number 586
+This is test message number 587
+This is test message number 588
+This is test message number 589
+This is test message number 590
+This is test message number 591
+This is test message number 592
+This is test message number 593
+This is test message number 594
+This is test message number 595
+This is test message number 596
+This is test message number 597
+This is test message number 598
+This is test message number 599
+This is test message number 600
+This is test message number 601
+This is test message number 602
+This is test message number 603
+This is test message number 604
+This is test message number 605
+This is test message number 606
+This is test message number 607
+This is test message number 608
+This is test message number 609
+This is test message number 610
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.2 b/log4j-core-test/${test:logging.path}/rollingtest.log.2
new file mode 100644
index 00000000000..167a15a125a
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.2
@@ -0,0 +1,33 @@
+This is test message number 33
+This is test message number 34
+This is test message number 35
+This is test message number 36
+This is test message number 37
+This is test message number 38
+This is test message number 39
+This is test message number 40
+This is test message number 41
+This is test message number 42
+This is test message number 43
+This is test message number 44
+This is test message number 45
+This is test message number 46
+This is test message number 47
+This is test message number 48
+This is test message number 49
+This is test message number 50
+This is test message number 51
+This is test message number 52
+This is test message number 53
+This is test message number 54
+This is test message number 55
+This is test message number 56
+This is test message number 57
+This is test message number 58
+This is test message number 59
+This is test message number 60
+This is test message number 61
+This is test message number 62
+This is test message number 63
+This is test message number 64
+This is test message number 65
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.20 b/log4j-core-test/${test:logging.path}/rollingtest.log.20
new file mode 100644
index 00000000000..02798d268f5
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.20
@@ -0,0 +1,32 @@
+This is test message number 611
+This is test message number 612
+This is test message number 613
+This is test message number 614
+This is test message number 615
+This is test message number 616
+This is test message number 617
+This is test message number 618
+This is test message number 619
+This is test message number 620
+This is test message number 621
+This is test message number 622
+This is test message number 623
+This is test message number 624
+This is test message number 625
+This is test message number 626
+This is test message number 627
+This is test message number 628
+This is test message number 629
+This is test message number 630
+This is test message number 631
+This is test message number 632
+This is test message number 633
+This is test message number 634
+This is test message number 635
+This is test message number 636
+This is test message number 637
+This is test message number 638
+This is test message number 639
+This is test message number 640
+This is test message number 641
+This is test message number 642
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.21 b/log4j-core-test/${test:logging.path}/rollingtest.log.21
new file mode 100644
index 00000000000..137152a3ed2
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.21
@@ -0,0 +1,32 @@
+This is test message number 643
+This is test message number 644
+This is test message number 645
+This is test message number 646
+This is test message number 647
+This is test message number 648
+This is test message number 649
+This is test message number 650
+This is test message number 651
+This is test message number 652
+This is test message number 653
+This is test message number 654
+This is test message number 655
+This is test message number 656
+This is test message number 657
+This is test message number 658
+This is test message number 659
+This is test message number 660
+This is test message number 661
+This is test message number 662
+This is test message number 663
+This is test message number 664
+This is test message number 665
+This is test message number 666
+This is test message number 667
+This is test message number 668
+This is test message number 669
+This is test message number 670
+This is test message number 671
+This is test message number 672
+This is test message number 673
+This is test message number 674
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.22 b/log4j-core-test/${test:logging.path}/rollingtest.log.22
new file mode 100644
index 00000000000..b8eea22d99b
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.22
@@ -0,0 +1,32 @@
+This is test message number 675
+This is test message number 676
+This is test message number 677
+This is test message number 678
+This is test message number 679
+This is test message number 680
+This is test message number 681
+This is test message number 682
+This is test message number 683
+This is test message number 684
+This is test message number 685
+This is test message number 686
+This is test message number 687
+This is test message number 688
+This is test message number 689
+This is test message number 690
+This is test message number 691
+This is test message number 692
+This is test message number 693
+This is test message number 694
+This is test message number 695
+This is test message number 696
+This is test message number 697
+This is test message number 698
+This is test message number 699
+This is test message number 700
+This is test message number 701
+This is test message number 702
+This is test message number 703
+This is test message number 704
+This is test message number 705
+This is test message number 706
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.23 b/log4j-core-test/${test:logging.path}/rollingtest.log.23
new file mode 100644
index 00000000000..c6c3a86b1ad
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.23
@@ -0,0 +1,32 @@
+This is test message number 707
+This is test message number 708
+This is test message number 709
+This is test message number 710
+This is test message number 711
+This is test message number 712
+This is test message number 713
+This is test message number 714
+This is test message number 715
+This is test message number 716
+This is test message number 717
+This is test message number 718
+This is test message number 719
+This is test message number 720
+This is test message number 721
+This is test message number 722
+This is test message number 723
+This is test message number 724
+This is test message number 725
+This is test message number 726
+This is test message number 727
+This is test message number 728
+This is test message number 729
+This is test message number 730
+This is test message number 731
+This is test message number 732
+This is test message number 733
+This is test message number 734
+This is test message number 735
+This is test message number 736
+This is test message number 737
+This is test message number 738
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.24 b/log4j-core-test/${test:logging.path}/rollingtest.log.24
new file mode 100644
index 00000000000..0cda500b60d
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.24
@@ -0,0 +1,32 @@
+This is test message number 739
+This is test message number 740
+This is test message number 741
+This is test message number 742
+This is test message number 743
+This is test message number 744
+This is test message number 745
+This is test message number 746
+This is test message number 747
+This is test message number 748
+This is test message number 749
+This is test message number 750
+This is test message number 751
+This is test message number 752
+This is test message number 753
+This is test message number 754
+This is test message number 755
+This is test message number 756
+This is test message number 757
+This is test message number 758
+This is test message number 759
+This is test message number 760
+This is test message number 761
+This is test message number 762
+This is test message number 763
+This is test message number 764
+This is test message number 765
+This is test message number 766
+This is test message number 767
+This is test message number 768
+This is test message number 769
+This is test message number 770
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.25 b/log4j-core-test/${test:logging.path}/rollingtest.log.25
new file mode 100644
index 00000000000..f9fbd838a44
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.25
@@ -0,0 +1,32 @@
+This is test message number 771
+This is test message number 772
+This is test message number 773
+This is test message number 774
+This is test message number 775
+This is test message number 776
+This is test message number 777
+This is test message number 778
+This is test message number 779
+This is test message number 780
+This is test message number 781
+This is test message number 782
+This is test message number 783
+This is test message number 784
+This is test message number 785
+This is test message number 786
+This is test message number 787
+This is test message number 788
+This is test message number 789
+This is test message number 790
+This is test message number 791
+This is test message number 792
+This is test message number 793
+This is test message number 794
+This is test message number 795
+This is test message number 796
+This is test message number 797
+This is test message number 798
+This is test message number 799
+This is test message number 800
+This is test message number 801
+This is test message number 802
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.26 b/log4j-core-test/${test:logging.path}/rollingtest.log.26
new file mode 100644
index 00000000000..748e0c97ef7
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.26
@@ -0,0 +1,32 @@
+This is test message number 803
+This is test message number 804
+This is test message number 805
+This is test message number 806
+This is test message number 807
+This is test message number 808
+This is test message number 809
+This is test message number 810
+This is test message number 811
+This is test message number 812
+This is test message number 813
+This is test message number 814
+This is test message number 815
+This is test message number 816
+This is test message number 817
+This is test message number 818
+This is test message number 819
+This is test message number 820
+This is test message number 821
+This is test message number 822
+This is test message number 823
+This is test message number 824
+This is test message number 825
+This is test message number 826
+This is test message number 827
+This is test message number 828
+This is test message number 829
+This is test message number 830
+This is test message number 831
+This is test message number 832
+This is test message number 833
+This is test message number 834
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.27 b/log4j-core-test/${test:logging.path}/rollingtest.log.27
new file mode 100644
index 00000000000..4c3ea867bbb
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.27
@@ -0,0 +1,32 @@
+This is test message number 835
+This is test message number 836
+This is test message number 837
+This is test message number 838
+This is test message number 839
+This is test message number 840
+This is test message number 841
+This is test message number 842
+This is test message number 843
+This is test message number 844
+This is test message number 845
+This is test message number 846
+This is test message number 847
+This is test message number 848
+This is test message number 849
+This is test message number 850
+This is test message number 851
+This is test message number 852
+This is test message number 853
+This is test message number 854
+This is test message number 855
+This is test message number 856
+This is test message number 857
+This is test message number 858
+This is test message number 859
+This is test message number 860
+This is test message number 861
+This is test message number 862
+This is test message number 863
+This is test message number 864
+This is test message number 865
+This is test message number 866
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.28 b/log4j-core-test/${test:logging.path}/rollingtest.log.28
new file mode 100644
index 00000000000..5e52ccdeb1c
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.28
@@ -0,0 +1,32 @@
+This is test message number 867
+This is test message number 868
+This is test message number 869
+This is test message number 870
+This is test message number 871
+This is test message number 872
+This is test message number 873
+This is test message number 874
+This is test message number 875
+This is test message number 876
+This is test message number 877
+This is test message number 878
+This is test message number 879
+This is test message number 880
+This is test message number 881
+This is test message number 882
+This is test message number 883
+This is test message number 884
+This is test message number 885
+This is test message number 886
+This is test message number 887
+This is test message number 888
+This is test message number 889
+This is test message number 890
+This is test message number 891
+This is test message number 892
+This is test message number 893
+This is test message number 894
+This is test message number 895
+This is test message number 896
+This is test message number 897
+This is test message number 898
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.29 b/log4j-core-test/${test:logging.path}/rollingtest.log.29
new file mode 100644
index 00000000000..ab7fd72f02f
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.29
@@ -0,0 +1,32 @@
+This is test message number 899
+This is test message number 900
+This is test message number 901
+This is test message number 902
+This is test message number 903
+This is test message number 904
+This is test message number 905
+This is test message number 906
+This is test message number 907
+This is test message number 908
+This is test message number 909
+This is test message number 910
+This is test message number 911
+This is test message number 912
+This is test message number 913
+This is test message number 914
+This is test message number 915
+This is test message number 916
+This is test message number 917
+This is test message number 918
+This is test message number 919
+This is test message number 920
+This is test message number 921
+This is test message number 922
+This is test message number 923
+This is test message number 924
+This is test message number 925
+This is test message number 926
+This is test message number 927
+This is test message number 928
+This is test message number 929
+This is test message number 930
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.3 b/log4j-core-test/${test:logging.path}/rollingtest.log.3
new file mode 100644
index 00000000000..e542a8d9283
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.3
@@ -0,0 +1,33 @@
+This is test message number 66
+This is test message number 67
+This is test message number 68
+This is test message number 69
+This is test message number 70
+This is test message number 71
+This is test message number 72
+This is test message number 73
+This is test message number 74
+This is test message number 75
+This is test message number 76
+This is test message number 77
+This is test message number 78
+This is test message number 79
+This is test message number 80
+This is test message number 81
+This is test message number 82
+This is test message number 83
+This is test message number 84
+This is test message number 85
+This is test message number 86
+This is test message number 87
+This is test message number 88
+This is test message number 89
+This is test message number 90
+This is test message number 91
+This is test message number 92
+This is test message number 93
+This is test message number 94
+This is test message number 95
+This is test message number 96
+This is test message number 97
+This is test message number 98
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.30 b/log4j-core-test/${test:logging.path}/rollingtest.log.30
new file mode 100644
index 00000000000..fc5c2acb546
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.30
@@ -0,0 +1,32 @@
+This is test message number 931
+This is test message number 932
+This is test message number 933
+This is test message number 934
+This is test message number 935
+This is test message number 936
+This is test message number 937
+This is test message number 938
+This is test message number 939
+This is test message number 940
+This is test message number 941
+This is test message number 942
+This is test message number 943
+This is test message number 944
+This is test message number 945
+This is test message number 946
+This is test message number 947
+This is test message number 948
+This is test message number 949
+This is test message number 950
+This is test message number 951
+This is test message number 952
+This is test message number 953
+This is test message number 954
+This is test message number 955
+This is test message number 956
+This is test message number 957
+This is test message number 958
+This is test message number 959
+This is test message number 960
+This is test message number 961
+This is test message number 962
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.31 b/log4j-core-test/${test:logging.path}/rollingtest.log.31
new file mode 100644
index 00000000000..679e15b80ce
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.31
@@ -0,0 +1,32 @@
+This is test message number 963
+This is test message number 964
+This is test message number 965
+This is test message number 966
+This is test message number 967
+This is test message number 968
+This is test message number 969
+This is test message number 970
+This is test message number 971
+This is test message number 972
+This is test message number 973
+This is test message number 974
+This is test message number 975
+This is test message number 976
+This is test message number 977
+This is test message number 978
+This is test message number 979
+This is test message number 980
+This is test message number 981
+This is test message number 982
+This is test message number 983
+This is test message number 984
+This is test message number 985
+This is test message number 986
+This is test message number 987
+This is test message number 988
+This is test message number 989
+This is test message number 990
+This is test message number 991
+This is test message number 992
+This is test message number 993
+This is test message number 994
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.4 b/log4j-core-test/${test:logging.path}/rollingtest.log.4
new file mode 100644
index 00000000000..e33f1a4fb3c
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.4
@@ -0,0 +1,32 @@
+This is test message number 99
+This is test message number 100
+This is test message number 101
+This is test message number 102
+This is test message number 103
+This is test message number 104
+This is test message number 105
+This is test message number 106
+This is test message number 107
+This is test message number 108
+This is test message number 109
+This is test message number 110
+This is test message number 111
+This is test message number 112
+This is test message number 113
+This is test message number 114
+This is test message number 115
+This is test message number 116
+This is test message number 117
+This is test message number 118
+This is test message number 119
+This is test message number 120
+This is test message number 121
+This is test message number 122
+This is test message number 123
+This is test message number 124
+This is test message number 125
+This is test message number 126
+This is test message number 127
+This is test message number 128
+This is test message number 129
+This is test message number 130
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.5 b/log4j-core-test/${test:logging.path}/rollingtest.log.5
new file mode 100644
index 00000000000..444291767de
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.5
@@ -0,0 +1,32 @@
+This is test message number 131
+This is test message number 132
+This is test message number 133
+This is test message number 134
+This is test message number 135
+This is test message number 136
+This is test message number 137
+This is test message number 138
+This is test message number 139
+This is test message number 140
+This is test message number 141
+This is test message number 142
+This is test message number 143
+This is test message number 144
+This is test message number 145
+This is test message number 146
+This is test message number 147
+This is test message number 148
+This is test message number 149
+This is test message number 150
+This is test message number 151
+This is test message number 152
+This is test message number 153
+This is test message number 154
+This is test message number 155
+This is test message number 156
+This is test message number 157
+This is test message number 158
+This is test message number 159
+This is test message number 160
+This is test message number 161
+This is test message number 162
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.6 b/log4j-core-test/${test:logging.path}/rollingtest.log.6
new file mode 100644
index 00000000000..9b2cf66cdd2
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.6
@@ -0,0 +1,32 @@
+This is test message number 163
+This is test message number 164
+This is test message number 165
+This is test message number 166
+This is test message number 167
+This is test message number 168
+This is test message number 169
+This is test message number 170
+This is test message number 171
+This is test message number 172
+This is test message number 173
+This is test message number 174
+This is test message number 175
+This is test message number 176
+This is test message number 177
+This is test message number 178
+This is test message number 179
+This is test message number 180
+This is test message number 181
+This is test message number 182
+This is test message number 183
+This is test message number 184
+This is test message number 185
+This is test message number 186
+This is test message number 187
+This is test message number 188
+This is test message number 189
+This is test message number 190
+This is test message number 191
+This is test message number 192
+This is test message number 193
+This is test message number 194
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.7 b/log4j-core-test/${test:logging.path}/rollingtest.log.7
new file mode 100644
index 00000000000..eb2e566a417
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.7
@@ -0,0 +1,32 @@
+This is test message number 195
+This is test message number 196
+This is test message number 197
+This is test message number 198
+This is test message number 199
+This is test message number 200
+This is test message number 201
+This is test message number 202
+This is test message number 203
+This is test message number 204
+This is test message number 205
+This is test message number 206
+This is test message number 207
+This is test message number 208
+This is test message number 209
+This is test message number 210
+This is test message number 211
+This is test message number 212
+This is test message number 213
+This is test message number 214
+This is test message number 215
+This is test message number 216
+This is test message number 217
+This is test message number 218
+This is test message number 219
+This is test message number 220
+This is test message number 221
+This is test message number 222
+This is test message number 223
+This is test message number 224
+This is test message number 225
+This is test message number 226
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.8 b/log4j-core-test/${test:logging.path}/rollingtest.log.8
new file mode 100644
index 00000000000..2c157c6e6d2
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.8
@@ -0,0 +1,32 @@
+This is test message number 227
+This is test message number 228
+This is test message number 229
+This is test message number 230
+This is test message number 231
+This is test message number 232
+This is test message number 233
+This is test message number 234
+This is test message number 235
+This is test message number 236
+This is test message number 237
+This is test message number 238
+This is test message number 239
+This is test message number 240
+This is test message number 241
+This is test message number 242
+This is test message number 243
+This is test message number 244
+This is test message number 245
+This is test message number 246
+This is test message number 247
+This is test message number 248
+This is test message number 249
+This is test message number 250
+This is test message number 251
+This is test message number 252
+This is test message number 253
+This is test message number 254
+This is test message number 255
+This is test message number 256
+This is test message number 257
+This is test message number 258
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.9 b/log4j-core-test/${test:logging.path}/rollingtest.log.9
new file mode 100644
index 00000000000..b3346f0393f
--- /dev/null
+++ b/log4j-core-test/${test:logging.path}/rollingtest.log.9
@@ -0,0 +1,32 @@
+This is test message number 259
+This is test message number 260
+This is test message number 261
+This is test message number 262
+This is test message number 263
+This is test message number 264
+This is test message number 265
+This is test message number 266
+This is test message number 267
+This is test message number 268
+This is test message number 269
+This is test message number 270
+This is test message number 271
+This is test message number 272
+This is test message number 273
+This is test message number 274
+This is test message number 275
+This is test message number 276
+This is test message number 277
+This is test message number 278
+This is test message number 279
+This is test message number 280
+This is test message number 281
+This is test message number 282
+This is test message number 283
+This is test message number 284
+This is test message number 285
+This is test message number 286
+This is test message number 287
+This is test message number 288
+This is test message number 289
+This is test message number 290
diff --git a/log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-1.log.gz b/log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-1.log.gz
new file mode 100644
index 0000000000000000000000000000000000000000..7e12d8f3615f0a07b5bba30a19fc1672a34399fc
GIT binary patch
literal 100
zcmb2|=3oGW|J)}}=!7vWnsnunQ0tv5j~*TQ64JWo(w!w&lvtT<*9q8MYWuOY_k*|e
ze%8Z}IHkVp*5T{pZp&mZsK#4T2oz&P?^4URw#NZ{1fRfX@Bkjc6?_4Qe-ZvE{8RX+@K5W%A9fK!
IK>z{(0NB7TIRF3v
literal 0
HcmV?d00001
diff --git a/log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-5.log.gz b/log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-5.log.gz
new file mode 100644
index 0000000000000000000000000000000000000000..0a0535f2f03a7b535dfa9ce659687ff298cb4093
GIT binary patch
literal 101
zcmb2|=3oGW|E(8x^EMdpFkGCcX~XzP`mkJNgNIl^3sd{wlPs1mcU_O&lQ%ueP=C_d
zzZSmp^wq0Xb!x?<_cgH>u--rLecNjWyC(k!#uk5qe=Pst|8V{x`?de;-i7~hWnf}p
F007X0D`Wrw
literal 0
HcmV?d00001
diff --git a/log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-6.log.gz b/log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-6.log.gz
new file mode 100644
index 0000000000000000000000000000000000000000..ca1c13c42ff76363033f6de9e2d08895f0740243
GIT binary patch
literal 101
zcmb2|=3oGW|E(8x^EMdpFkGCcX~X!)e~-JE!X#Fag$EMrjU4@Uy(<-8e|u@zneLQg
zd%wxgPoIqAbiRLdTK@y#A3XaS)<2N`!6$cM>szk>BL6i11piq6!T status.getMessage().getFormattedMessage()
+ .contains("No layout configured for HttpAppender 'Http'")),
+ "Expected error message was not logged"
+ );
+ }
+
+ @Test
+ @UsingStatusListener
+ void testMissingUrl(final ListStatusListener listener) {
+ // Build the appender without a URL
+ HttpAppender appender = HttpAppender.newBuilder()
+ .setName("Http")
+ .setLayout(new JsonLayout.Builder().build())
+ .build();
+
+ // Assert that the appender is null
+ assertNull(appender, "Appender should be null when URL is missing");
+
+ // Verify that an ERROR log message was recorded
+ assertTrue(
+ listener.findStatusData(Level.ERROR)
+ .stream()
+ .anyMatch(status -> status.getMessage().getFormattedMessage()
+ .contains("No URL configured for HttpAppender 'Http'")),
+ "Expected error message was not logged"
+ );
+ }
+
+ @Test
+ @UsingStatusListener
+ void testMissingName(final ListStatusListener listener) throws Exception {
+ // Build the appender without a name
+ HttpAppender appender = HttpAppender.newBuilder()
+ .setUrl(new URL("https://localhost"))
+ .setLayout(new JsonLayout.Builder().build())
+ .build();
+
+ // Assert that the appender is null
+ assertNull(appender, "Appender should be null when name is missing");
+
+ // Verify that an ERROR log message was recorded
+ assertTrue(
+ listener.findStatusData(Level.ERROR)
+ .stream()
+ .anyMatch(status -> status.getMessage().getFormattedMessage()
+ .contains("No name configured for HttpAppender")),
+ "Expected error message was not logged"
+ );
+ }
+
+ @Test
+ void testValidAppenderCreation() throws Exception {
+ // Build the appender with all required properties
+ HttpAppender appender = HttpAppender.newBuilder()
+ .setName("Http")
+ .setUrl(new URL("https://localhost"))
+ .setLayout(new JsonLayout.Builder().build())
+ .build();
+
+ // Assert that the appender is not null
+ assertNotNull(appender, "Appender should be created successfully with valid properties");
+ }
+}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpAppenderBuilderTest.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpAppenderBuilderTest.java
new file mode 100644
index 00000000000..5919d40c819
--- /dev/null
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpAppenderBuilderTest.java
@@ -0,0 +1,128 @@
+package org.apache.logging.log4j.core.appender;
+
+import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
+import static com.github.tomakehurst.wiremock.client.WireMock.containing;
+import static com.github.tomakehurst.wiremock.client.WireMock.equalTo;
+import static com.github.tomakehurst.wiremock.client.WireMock.post;
+import static com.github.tomakehurst.wiremock.client.WireMock.postRequestedFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.put;
+import static com.github.tomakehurst.wiremock.client.WireMock.putRequestedFor;
+import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
+import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder;
+import com.github.tomakehurst.wiremock.junit5.WireMockExtension;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.List;
+import java.util.stream.Collectors;
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.config.Configuration;
+import org.apache.logging.log4j.core.config.DefaultConfiguration;
+import org.apache.logging.log4j.core.config.Property;
+import org.apache.logging.log4j.core.impl.Log4jLogEvent;
+import org.apache.logging.log4j.core.layout.JsonLayout;
+import org.apache.logging.log4j.core.lookup.JavaLookup;
+import org.apache.logging.log4j.core.net.ssl.KeyStoreConfiguration;
+import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
+import org.apache.logging.log4j.core.net.ssl.SslKeyStoreConstants;
+import org.apache.logging.log4j.core.net.ssl.TrustStoreConfiguration;
+import org.apache.logging.log4j.message.SimpleMessage;
+import org.apache.logging.log4j.status.StatusData;
+import org.apache.logging.log4j.test.ListStatusListener;
+import org.apache.logging.log4j.test.junit.UsingStatusListener;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.DisabledOnOs;
+import org.junit.jupiter.api.condition.OS;
+import org.junit.jupiter.api.extension.RegisterExtension;
+
+import java.net.URL;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+@StatusLoggerLevel(Level.ERROR) // Ensure the logger captures ERROR level messages
+class HttpAppenderBuilderTest {
+
+ @Test
+ @UsingStatusListener
+ void testMissingLayout(final ListStatusListener listener) throws Exception {
+ // Build the appender without a layout
+ HttpAppender appender = HttpAppender.newBuilder()
+ .setName("Http")
+ .setUrl(new URL("https://localhost"))
+ .build();
+
+ // Assert that the appender is null
+ assertNull(appender, "Appender should be null when layout is missing");
+
+ // Verify that an ERROR log message was recorded
+ assertTrue(
+ listener.findStatusData(Level.ERROR)
+ .stream()
+ .anyMatch(status -> status.getMessage().getFormattedMessage()
+ .contains("No layout configured for HttpAppender 'Http'")),
+ "Expected error message was not logged"
+ );
+ }
+
+ @Test
+ @UsingStatusListener
+ void testMissingUrl(final ListStatusListener listener) {
+ // Build the appender without a URL
+ HttpAppender appender = HttpAppender.newBuilder()
+ .setName("Http")
+ .setLayout(new JsonLayout.Builder().build())
+ .build();
+
+ // Assert that the appender is null
+ assertNull(appender, "Appender should be null when URL is missing");
+
+ // Verify that an ERROR log message was recorded
+ assertTrue(
+ listener.findStatusData(Level.ERROR)
+ .stream()
+ .anyMatch(status -> status.getMessage().getFormattedMessage()
+ .contains("No URL configured for HttpAppender 'Http'")),
+ "Expected error message was not logged"
+ );
+ }
+
+ @Test
+ @UsingStatusListener
+ void testMissingName(final ListStatusListener listener) throws Exception {
+ // Build the appender without a name
+ HttpAppender appender = HttpAppender.newBuilder()
+ .setUrl(new URL("https://localhost"))
+ .setLayout(new JsonLayout.Builder().build())
+ .build();
+
+ // Assert that the appender is null
+ assertNull(appender, "Appender should be null when name is missing");
+
+ // Verify that an ERROR log message was recorded
+ assertTrue(
+ listener.findStatusData(Level.ERROR)
+ .stream()
+ .anyMatch(status -> status.getMessage().getFormattedMessage()
+ .contains("No name configured for HttpAppender")),
+ "Expected error message was not logged"
+ );
+ }
+
+ @Test
+ void testValidAppenderCreation() throws Exception {
+ // Build the appender with all required properties
+ HttpAppender appender = HttpAppender.newBuilder()
+ .setName("Http")
+ .setUrl(new URL("https://localhost"))
+ .setLayout(new JsonLayout.Builder().build())
+ .build();
+
+ // Assert that the appender is not null
+ assertNotNull(appender, "Appender should be created successfully with valid properties");
+ }
+}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
index 5b60a7727b3..0f0a947b32a 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
@@ -80,7 +80,8 @@
import org.apache.logging.log4j.util.PropertiesUtil;
/**
- * The base Configuration. Many configuration implementations will extend this class.
+ * The base Configuration. Many configuration implementations will extend this
+ * class.
*/
public abstract class AbstractConfiguration extends AbstractFilterable implements Configuration {
@@ -153,7 +154,8 @@ protected AbstractConfiguration(final LoggerContext loggerContext, final Configu
this.loggerContext = new WeakReference<>(loggerContext);
tempLookup.setLoggerContext(loggerContext);
// The loggerContext is null for the NullConfiguration class.
- // this.loggerContext = new WeakReference(Objects.requireNonNull(loggerContext, "loggerContext is null"));
+ // this.loggerContext = new WeakReference(Objects.requireNonNull(loggerContext,
+ // "loggerContext is null"));
this.configurationSource = Objects.requireNonNull(configurationSource, "configurationSource is null");
componentMap.put(CONTEXT_PROPERTIES, propertyMap);
pluginManager = new PluginManager(Node.CATEGORY);
@@ -282,8 +284,8 @@ protected void initializeWatchers(
if (file != null) {
final Source cfgSource = new Source(file);
final long lastModified = file.lastModified();
- final ConfigurationFileWatcher watcher =
- new ConfigurationFileWatcher(this, reconfigurable, listeners, lastModified);
+ final ConfigurationFileWatcher watcher = new ConfigurationFileWatcher(this, reconfigurable,
+ listeners, lastModified);
watchManager.watch(cfgSource, watcher);
} else if (configSource.getURL() != null) {
monitorSource(reconfigurable, configSource);
@@ -369,15 +371,20 @@ public boolean stop(final long timeout, final TimeUnit timeUnit) {
super.stop(timeout, timeUnit, false);
// Stop the components that are closest to the application first:
- // 1. Notify all LoggerConfigs' ReliabilityStrategy that the configuration will be stopped.
+ // 1. Notify all LoggerConfigs' ReliabilityStrategy that the configuration will
+ // be stopped.
// 2. Stop the LoggerConfig objects (this may stop nested Filters)
- // 3. Stop the AsyncLoggerConfigDelegate. This shuts down the AsyncLoggerConfig Disruptor
- // and waits until all events in the RingBuffer have been processed.
+ // 3. Stop the AsyncLoggerConfigDelegate. This shuts down the AsyncLoggerConfig
+ // Disruptor
+ // and waits until all events in the RingBuffer have been processed.
// 4. Stop all AsyncAppenders. This shuts down the associated thread and
- // waits until all events in the queue have been processed. (With optional timeout.)
- // 5. Notify all LoggerConfigs' ReliabilityStrategy that appenders will be stopped.
- // This guarantees that any event received by a LoggerConfig before reconfiguration
- // are passed on to the Appenders before the Appenders are stopped.
+ // waits until all events in the queue have been processed. (With optional
+ // timeout.)
+ // 5. Notify all LoggerConfigs' ReliabilityStrategy that appenders will be
+ // stopped.
+ // This guarantees that any event received by a LoggerConfig before
+ // reconfiguration
+ // are passed on to the Appenders before the Appenders are stopped.
// 6. Stop the remaining running Appenders. (It should now be safe to do so.)
// 7. Notify all LoggerConfigs that their Appenders can be cleaned up.
@@ -572,8 +579,10 @@ protected void preConfigure(final Node node) {
}
/**
- * Process conditions by evaluating them and including the children of conditions that are true
+ * Process conditions by evaluating them and including the children of
+ * conditions that are true
* and discarding those that are not.
+ *
* @param node The node to evaluate.
*/
protected void processConditionals(final Node node) {
@@ -623,10 +632,12 @@ protected void processConditionals(final Node node) {
}
/**
- * Handle Select nodes. This finds the first child condition that returns true and attaches its children
+ * Handle Select nodes. This finds the first child condition that returns true
+ * and attaches its children
* to the parent of the Select Node. Other Nodes are discarded.
+ *
* @param selectNode The Select Node.
- * @param type The PluginType of the Select Node.
+ * @param type The PluginType of the Select Node.
* @return The list of Nodes to be added to the parent.
*/
protected List processSelect(final Node selectNode, final PluginType> type) {
@@ -663,7 +674,7 @@ protected void doConfigure() {
processConditionals(rootNode);
preConfigure(rootNode);
configurationScheduler.start();
- // Find the "Properties" node first
+
boolean hasProperties = false;
for (final Node node : rootNode.getChildren()) {
if ("Properties".equalsIgnoreCase(node.getName())) {
@@ -687,28 +698,37 @@ protected void doConfigure() {
configurationStrSubstitutor.setVariableResolver(interpolator);
}
+ Node scriptsNode = null;
+ for (final Node node : rootNode.getChildren()) {
+ if ("Scripts".equalsIgnoreCase(node.getName())) {
+ scriptsNode = node;
+ createConfiguration(scriptsNode, null);
+ if (scriptsNode.getObject() != null) {
+ for (final AbstractScript script : scriptsNode.getObject(AbstractScript[].class)) {
+ if (script instanceof ScriptRef) {
+ LOGGER.error(
+ "Script reference to {} not added. Scripts definition cannot contain script references",
+ script.getName());
+ } else if (scriptManager != null) {
+ scriptManager.addScript(script);
+ }
+ }
+ }
+ break;
+ }
+ }
+
boolean setLoggers = false;
boolean setRoot = false;
for (final Node child : rootNode.getChildren()) {
- if ("Properties".equalsIgnoreCase(child.getName())) {
- // We already used this node
- continue;
+ if ("Properties".equalsIgnoreCase(child.getName()) || "Scripts".equalsIgnoreCase(child.getName())) {
+ continue; // Skip already processed nodes
}
createConfiguration(child, null);
if (child.getObject() == null) {
continue;
}
- if ("Scripts".equalsIgnoreCase(child.getName())) {
- for (final AbstractScript script : child.getObject(AbstractScript[].class)) {
- if (script instanceof ScriptRef) {
- LOGGER.error(
- "Script reference to {} not added. Scripts definition cannot contain script references",
- script.getName());
- } else if (scriptManager != null) {
- scriptManager.addScript(script);
- }
- }
- } else if ("Appenders".equalsIgnoreCase(child.getName())) {
+ if ("Appenders".equalsIgnoreCase(child.getName())) {
appenders = child.getObject();
} else if (child.isInstanceOf(Filter.class)) {
addFilter(child.getObject(Filter.class));
@@ -748,7 +768,6 @@ protected void doConfigure() {
LOGGER.warn(
"No Root logger was configured, creating default ERROR-level Root logger with Console appender");
setToDefault();
- // return; // LOG4J2-219: creating default root=ok, but don't exclude configured Loggers
}
for (final Map.Entry entry : loggerConfigs.entrySet()) {
@@ -828,7 +847,8 @@ public void removeListener(final ConfigurationListener listener) {
* Returns the Appender with the specified name.
*
* @param appenderName The name of the Appender.
- * @return the Appender with the specified name or null if the Appender cannot be located.
+ * @return the Appender with the specified name or null if the Appender cannot
+ * be located.
*/
@Override
@SuppressWarnings("unchecked")
@@ -881,7 +901,8 @@ public Advertiser getAdvertiser() {
/*
* (non-Javadoc)
*
- * @see org.apache.logging.log4j.core.config.ReliabilityStrategyFactory#getReliabilityStrategy(org.apache.logging.log4j
+ * @see org.apache.logging.log4j.core.config.ReliabilityStrategyFactory#
+ * getReliabilityStrategy(org.apache.logging.log4j
* .core.config.LoggerConfig)
*/
@Override
@@ -890,12 +911,15 @@ public ReliabilityStrategy getReliabilityStrategy(final LoggerConfig loggerConfi
}
/**
- * Associates an Appender with a LoggerConfig. This method is synchronized in case a Logger with the same name is
+ * Associates an Appender with a LoggerConfig. This method is synchronized in
+ * case a Logger with the same name is
* being updated at the same time.
*
- * Note: This method is not used when configuring via configuration. It is primarily used by unit tests.
+ * Note: This method is not used when configuring via configuration. It is
+ * primarily used by unit tests.
*
- * @param logger The Logger the Appender will be associated with.
+ *
+ * @param logger The Logger the Appender will be associated with.
* @param appender The Appender.
*/
@Override
@@ -920,11 +944,14 @@ public synchronized void addLoggerAppender(
}
/**
- * Associates a Filter with a LoggerConfig. This method is synchronized in case a Logger with the same name is being
+ * Associates a Filter with a LoggerConfig. This method is synchronized in case
+ * a Logger with the same name is being
* updated at the same time.
*
- * Note: This method is not used when configuring via configuration. It is primarily used by unit tests.
+ * Note: This method is not used when configuring via configuration. It is
+ * primarily used by unit tests.
*
+ *
* @param logger The Logger the Footer will be associated with.
* @param filter The Filter.
*/
@@ -945,12 +972,15 @@ public synchronized void addLoggerFilter(final org.apache.logging.log4j.core.Log
}
/**
- * Marks a LoggerConfig as additive. This method is synchronized in case a Logger with the same name is being
+ * Marks a LoggerConfig as additive. This method is synchronized in case a
+ * Logger with the same name is being
* updated at the same time.
*
- * Note: This method is not used when configuring via configuration. It is primarily used by unit tests.
+ * Note: This method is not used when configuring via configuration. It is
+ * primarily used by unit tests.
*
- * @param logger The Logger the Appender will be associated with.
+ *
+ * @param logger The Logger the Appender will be associated with.
* @param additive True if the LoggerConfig should be additive, false otherwise.
*/
@Override
@@ -970,8 +1000,10 @@ public synchronized void setLoggerAdditive(
}
/**
- * Remove an Appender. First removes any associations between LoggerConfigs and the Appender, removes the Appender
- * from this appender list and then stops the appender. This method is synchronized in case an Appender with the
+ * Remove an Appender. First removes any associations between LoggerConfigs and
+ * the Appender, removes the Appender
+ * from this appender list and then stops the appender. This method is
+ * synchronized in case an Appender with the
* same name is being added during the removal.
*
* @param appenderName the name of the appender to remove.
@@ -998,7 +1030,8 @@ public List getCustomLevels() {
}
/**
- * Locates the appropriate LoggerConfig for a Logger name. This will remove tokens from the package name as
+ * Locates the appropriate LoggerConfig for a Logger name. This will remove
+ * tokens from the package name as
* necessary or return the root LoggerConfig if no other matches were found.
*
* @param loggerName The Logger name.
@@ -1038,7 +1071,8 @@ public LoggerConfig getRootLogger() {
/**
* Returns a Map of all the LoggerConfigs.
*
- * @return a Map with each entry containing the name of the Logger and the LoggerConfig.
+ * @return a Map with each entry containing the name of the Logger and the
+ * LoggerConfig.
*/
@Override
public Map getLoggers() {
@@ -1056,10 +1090,11 @@ public LoggerConfig getLogger(final String loggerName) {
}
/**
- * Add a loggerConfig. The LoggerConfig must already be configured with Appenders, Filters, etc. After addLogger is
+ * Add a loggerConfig. The LoggerConfig must already be configured with
+ * Appenders, Filters, etc. After addLogger is
* called LoggerContext.updateLoggers must be called.
*
- * @param loggerName The name of the Logger.
+ * @param loggerName The name of the Logger.
* @param loggerConfig The LoggerConfig.
*/
@Override
@@ -1101,6 +1136,7 @@ public void createConfiguration(final Node node, final LogEvent event) {
/**
* This method is used by Arbiters to create specific children.
+ *
* @param type The PluginType.
* @param node The Node.
* @return The created object or null;
@@ -1115,39 +1151,58 @@ public Object createPluginObject(final PluginType> type, final Node node) {
}
/**
- * Invokes a static factory method to either create the desired object or to create a builder object that creates
- * the desired object. In the case of a factory method, it should be annotated with
- * {@link org.apache.logging.log4j.core.config.plugins.PluginFactory}, and each parameter should be annotated with
- * an appropriate plugin annotation depending on what that parameter describes. Parameters annotated with
- * {@link org.apache.logging.log4j.core.config.plugins.PluginAttribute} must be a type that can be converted from a
- * string using one of the {@link org.apache.logging.log4j.core.config.plugins.convert.TypeConverter TypeConverters}
- * . Parameters with {@link org.apache.logging.log4j.core.config.plugins.PluginElement} may be any plugin class or
- * an array of a plugin class. Collections and Maps are currently not supported, although the factory method that is
+ * Invokes a static factory method to either create the desired object or to
+ * create a builder object that creates
+ * the desired object. In the case of a factory method, it should be annotated
+ * with
+ * {@link org.apache.logging.log4j.core.config.plugins.PluginFactory}, and each
+ * parameter should be annotated with
+ * an appropriate plugin annotation depending on what that parameter describes.
+ * Parameters annotated with
+ * {@link org.apache.logging.log4j.core.config.plugins.PluginAttribute} must be
+ * a type that can be converted from a
+ * string using one of the
+ * {@link org.apache.logging.log4j.core.config.plugins.convert.TypeConverter
+ * TypeConverters}
+ * . Parameters with
+ * {@link org.apache.logging.log4j.core.config.plugins.PluginElement} may be any
+ * plugin class or
+ * an array of a plugin class. Collections and Maps are currently not supported,
+ * although the factory method that is
* called can create these from an array.
*
* Plugins can also be created using a builder class that implements
- * {@link org.apache.logging.log4j.core.util.Builder}. In that case, a static method annotated with
- * {@link org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute} should create the builder class, and
- * the various fields in the builder class should be annotated similarly to the method parameters. However, instead
+ * {@link org.apache.logging.log4j.core.util.Builder}. In that case, a static
+ * method annotated with
+ * {@link org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute}
+ * should create the builder class, and
+ * the various fields in the builder class should be annotated similarly to the
+ * method parameters. However, instead
* of using PluginAttribute, one should use
- * {@link org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute} where the default value can be
- * specified as the default field value instead of as an additional annotation parameter.
+ * {@link org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute}
+ * where the default value can be
+ * specified as the default field value instead of as an additional annotation
+ * parameter.
*
*
* In either case, there are also annotations for specifying a
* {@link org.apache.logging.log4j.core.config.Configuration} (
- * {@link org.apache.logging.log4j.core.config.plugins.PluginConfiguration}) or a
+ * {@link org.apache.logging.log4j.core.config.plugins.PluginConfiguration}) or
+ * a
* {@link org.apache.logging.log4j.core.config.Node} (
* {@link org.apache.logging.log4j.core.config.plugins.PluginNode}).
*
*
- * Although the happy path works, more work still needs to be done to log incorrect parameters. These will generally
+ * Although the happy path works, more work still needs to be done to log
+ * incorrect parameters. These will generally
* result in unhelpful InvocationTargetExceptions.
*
- * @param type the type of plugin to create.
- * @param node the corresponding configuration node for this plugin to create.
+ *
+ * @param type the type of plugin to create.
+ * @param node the corresponding configuration node for this plugin to create.
* @param event the LogEvent that spurred the creation of this plugin
- * @return the created plugin object or {@code null} if there was an error setting it up.
+ * @return the created plugin object or {@code null} if there was an error
+ * setting it up.
* @see org.apache.logging.log4j.core.config.plugins.util.PluginBuilder
* @see org.apache.logging.log4j.core.config.plugins.visitors.PluginVisitor
* @see org.apache.logging.log4j.core.config.plugins.convert.TypeConverter
@@ -1218,12 +1273,14 @@ private void setParents() {
}
/**
- * Reads an InputStream using buffered reads into a byte array buffer. The given InputStream will remain open after
+ * Reads an InputStream using buffered reads into a byte array buffer. The given
+ * InputStream will remain open after
* invocation of this method.
*
* @param is the InputStream to read into a byte array buffer.
* @return a byte array of the InputStream contents.
- * @throws IOException if the {@code read} method of the provided InputStream throws this exception.
+ * @throws IOException if the {@code read} method of the provided InputStream
+ * throws this exception.
*/
protected static byte[] toByteArray(final InputStream is) throws IOException {
final ByteArrayOutputStream buffer = new ByteArrayOutputStream();
From dffa4b890e30bbef447fd23c40d6599358beac50 Mon Sep 17 00:00:00 2001
From: "Piotr P. Karwasz"
Date: Fri, 24 Jan 2025 18:20:45 +0100
Subject: [PATCH 5/8] Formatting
---
.../core/config/AbstractConfiguration.java | 152 ++++++------------
1 file changed, 52 insertions(+), 100 deletions(-)
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
index 0f0a947b32a..d5c9349ce7b 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
@@ -80,8 +80,7 @@
import org.apache.logging.log4j.util.PropertiesUtil;
/**
- * The base Configuration. Many configuration implementations will extend this
- * class.
+ * The base Configuration. Many configuration implementations will extend this class.
*/
public abstract class AbstractConfiguration extends AbstractFilterable implements Configuration {
@@ -154,8 +153,7 @@ protected AbstractConfiguration(final LoggerContext loggerContext, final Configu
this.loggerContext = new WeakReference<>(loggerContext);
tempLookup.setLoggerContext(loggerContext);
// The loggerContext is null for the NullConfiguration class.
- // this.loggerContext = new WeakReference(Objects.requireNonNull(loggerContext,
- // "loggerContext is null"));
+ // this.loggerContext = new WeakReference(Objects.requireNonNull(loggerContext, "loggerContext is null"));
this.configurationSource = Objects.requireNonNull(configurationSource, "configurationSource is null");
componentMap.put(CONTEXT_PROPERTIES, propertyMap);
pluginManager = new PluginManager(Node.CATEGORY);
@@ -284,8 +282,8 @@ protected void initializeWatchers(
if (file != null) {
final Source cfgSource = new Source(file);
final long lastModified = file.lastModified();
- final ConfigurationFileWatcher watcher = new ConfigurationFileWatcher(this, reconfigurable,
- listeners, lastModified);
+ final ConfigurationFileWatcher watcher =
+ new ConfigurationFileWatcher(this, reconfigurable, listeners, lastModified);
watchManager.watch(cfgSource, watcher);
} else if (configSource.getURL() != null) {
monitorSource(reconfigurable, configSource);
@@ -371,20 +369,15 @@ public boolean stop(final long timeout, final TimeUnit timeUnit) {
super.stop(timeout, timeUnit, false);
// Stop the components that are closest to the application first:
- // 1. Notify all LoggerConfigs' ReliabilityStrategy that the configuration will
- // be stopped.
+ // 1. Notify all LoggerConfigs' ReliabilityStrategy that the configuration will be stopped.
// 2. Stop the LoggerConfig objects (this may stop nested Filters)
- // 3. Stop the AsyncLoggerConfigDelegate. This shuts down the AsyncLoggerConfig
- // Disruptor
- // and waits until all events in the RingBuffer have been processed.
+ // 3. Stop the AsyncLoggerConfigDelegate. This shuts down the AsyncLoggerConfig Disruptor
+ // and waits until all events in the RingBuffer have been processed.
// 4. Stop all AsyncAppenders. This shuts down the associated thread and
- // waits until all events in the queue have been processed. (With optional
- // timeout.)
- // 5. Notify all LoggerConfigs' ReliabilityStrategy that appenders will be
- // stopped.
- // This guarantees that any event received by a LoggerConfig before
- // reconfiguration
- // are passed on to the Appenders before the Appenders are stopped.
+ // waits until all events in the queue have been processed. (With optional timeout.)
+ // 5. Notify all LoggerConfigs' ReliabilityStrategy that appenders will be stopped.
+ // This guarantees that any event received by a LoggerConfig before reconfiguration
+ // are passed on to the Appenders before the Appenders are stopped.
// 6. Stop the remaining running Appenders. (It should now be safe to do so.)
// 7. Notify all LoggerConfigs that their Appenders can be cleaned up.
@@ -579,10 +572,8 @@ protected void preConfigure(final Node node) {
}
/**
- * Process conditions by evaluating them and including the children of
- * conditions that are true
+ * Process conditions by evaluating them and including the children of conditions that are true
* and discarding those that are not.
- *
* @param node The node to evaluate.
*/
protected void processConditionals(final Node node) {
@@ -632,12 +623,10 @@ protected void processConditionals(final Node node) {
}
/**
- * Handle Select nodes. This finds the first child condition that returns true
- * and attaches its children
+ * Handle Select nodes. This finds the first child condition that returns true and attaches its children
* to the parent of the Select Node. Other Nodes are discarded.
- *
* @param selectNode The Select Node.
- * @param type The PluginType of the Select Node.
+ * @param type The PluginType of the Select Node.
* @return The list of Nodes to be added to the parent.
*/
protected List processSelect(final Node selectNode, final PluginType> type) {
@@ -674,7 +663,7 @@ protected void doConfigure() {
processConditionals(rootNode);
preConfigure(rootNode);
configurationScheduler.start();
-
+ // Find the "Properties" node first
boolean hasProperties = false;
for (final Node node : rootNode.getChildren()) {
if ("Properties".equalsIgnoreCase(node.getName())) {
@@ -768,6 +757,7 @@ protected void doConfigure() {
LOGGER.warn(
"No Root logger was configured, creating default ERROR-level Root logger with Console appender");
setToDefault();
+ // return; // LOG4J2-219: creating default root=ok, but don't exclude configured Loggers
}
for (final Map.Entry entry : loggerConfigs.entrySet()) {
@@ -847,8 +837,7 @@ public void removeListener(final ConfigurationListener listener) {
* Returns the Appender with the specified name.
*
* @param appenderName The name of the Appender.
- * @return the Appender with the specified name or null if the Appender cannot
- * be located.
+ * @return the Appender with the specified name or null if the Appender cannot be located.
*/
@Override
@SuppressWarnings("unchecked")
@@ -901,8 +890,7 @@ public Advertiser getAdvertiser() {
/*
* (non-Javadoc)
*
- * @see org.apache.logging.log4j.core.config.ReliabilityStrategyFactory#
- * getReliabilityStrategy(org.apache.logging.log4j
+ * @see org.apache.logging.log4j.core.config.ReliabilityStrategyFactory#getReliabilityStrategy(org.apache.logging.log4j
* .core.config.LoggerConfig)
*/
@Override
@@ -911,15 +899,12 @@ public ReliabilityStrategy getReliabilityStrategy(final LoggerConfig loggerConfi
}
/**
- * Associates an Appender with a LoggerConfig. This method is synchronized in
- * case a Logger with the same name is
+ * Associates an Appender with a LoggerConfig. This method is synchronized in case a Logger with the same name is
* being updated at the same time.
*
- * Note: This method is not used when configuring via configuration. It is
- * primarily used by unit tests.
+ * Note: This method is not used when configuring via configuration. It is primarily used by unit tests.
*
- *
- * @param logger The Logger the Appender will be associated with.
+ * @param logger The Logger the Appender will be associated with.
* @param appender The Appender.
*/
@Override
@@ -944,14 +929,11 @@ public synchronized void addLoggerAppender(
}
/**
- * Associates a Filter with a LoggerConfig. This method is synchronized in case
- * a Logger with the same name is being
+ * Associates a Filter with a LoggerConfig. This method is synchronized in case a Logger with the same name is being
* updated at the same time.
*
- * Note: This method is not used when configuring via configuration. It is
- * primarily used by unit tests.
+ * Note: This method is not used when configuring via configuration. It is primarily used by unit tests.
*
- *
* @param logger The Logger the Footer will be associated with.
* @param filter The Filter.
*/
@@ -972,15 +954,12 @@ public synchronized void addLoggerFilter(final org.apache.logging.log4j.core.Log
}
/**
- * Marks a LoggerConfig as additive. This method is synchronized in case a
- * Logger with the same name is being
+ * Marks a LoggerConfig as additive. This method is synchronized in case a Logger with the same name is being
* updated at the same time.
*
- * Note: This method is not used when configuring via configuration. It is
- * primarily used by unit tests.
+ * Note: This method is not used when configuring via configuration. It is primarily used by unit tests.
*
- *
- * @param logger The Logger the Appender will be associated with.
+ * @param logger The Logger the Appender will be associated with.
* @param additive True if the LoggerConfig should be additive, false otherwise.
*/
@Override
@@ -1000,10 +979,8 @@ public synchronized void setLoggerAdditive(
}
/**
- * Remove an Appender. First removes any associations between LoggerConfigs and
- * the Appender, removes the Appender
- * from this appender list and then stops the appender. This method is
- * synchronized in case an Appender with the
+ * Remove an Appender. First removes any associations between LoggerConfigs and the Appender, removes the Appender
+ * from this appender list and then stops the appender. This method is synchronized in case an Appender with the
* same name is being added during the removal.
*
* @param appenderName the name of the appender to remove.
@@ -1030,8 +1007,7 @@ public List getCustomLevels() {
}
/**
- * Locates the appropriate LoggerConfig for a Logger name. This will remove
- * tokens from the package name as
+ * Locates the appropriate LoggerConfig for a Logger name. This will remove tokens from the package name as
* necessary or return the root LoggerConfig if no other matches were found.
*
* @param loggerName The Logger name.
@@ -1071,8 +1047,7 @@ public LoggerConfig getRootLogger() {
/**
* Returns a Map of all the LoggerConfigs.
*
- * @return a Map with each entry containing the name of the Logger and the
- * LoggerConfig.
+ * @return a Map with each entry containing the name of the Logger and the LoggerConfig.
*/
@Override
public Map getLoggers() {
@@ -1090,11 +1065,10 @@ public LoggerConfig getLogger(final String loggerName) {
}
/**
- * Add a loggerConfig. The LoggerConfig must already be configured with
- * Appenders, Filters, etc. After addLogger is
+ * Add a loggerConfig. The LoggerConfig must already be configured with Appenders, Filters, etc. After addLogger is
* called LoggerContext.updateLoggers must be called.
*
- * @param loggerName The name of the Logger.
+ * @param loggerName The name of the Logger.
* @param loggerConfig The LoggerConfig.
*/
@Override
@@ -1136,7 +1110,6 @@ public void createConfiguration(final Node node, final LogEvent event) {
/**
* This method is used by Arbiters to create specific children.
- *
* @param type The PluginType.
* @param node The Node.
* @return The created object or null;
@@ -1151,58 +1124,39 @@ public Object createPluginObject(final PluginType> type, final Node node) {
}
/**
- * Invokes a static factory method to either create the desired object or to
- * create a builder object that creates
- * the desired object. In the case of a factory method, it should be annotated
- * with
- * {@link org.apache.logging.log4j.core.config.plugins.PluginFactory}, and each
- * parameter should be annotated with
- * an appropriate plugin annotation depending on what that parameter describes.
- * Parameters annotated with
- * {@link org.apache.logging.log4j.core.config.plugins.PluginAttribute} must be
- * a type that can be converted from a
- * string using one of the
- * {@link org.apache.logging.log4j.core.config.plugins.convert.TypeConverter
- * TypeConverters}
- * . Parameters with
- * {@link org.apache.logging.log4j.core.config.plugins.PluginElement} may be any
- * plugin class or
- * an array of a plugin class. Collections and Maps are currently not supported,
- * although the factory method that is
+ * Invokes a static factory method to either create the desired object or to create a builder object that creates
+ * the desired object. In the case of a factory method, it should be annotated with
+ * {@link org.apache.logging.log4j.core.config.plugins.PluginFactory}, and each parameter should be annotated with
+ * an appropriate plugin annotation depending on what that parameter describes. Parameters annotated with
+ * {@link org.apache.logging.log4j.core.config.plugins.PluginAttribute} must be a type that can be converted from a
+ * string using one of the {@link org.apache.logging.log4j.core.config.plugins.convert.TypeConverter TypeConverters}
+ * . Parameters with {@link org.apache.logging.log4j.core.config.plugins.PluginElement} may be any plugin class or
+ * an array of a plugin class. Collections and Maps are currently not supported, although the factory method that is
* called can create these from an array.
*
* Plugins can also be created using a builder class that implements
- * {@link org.apache.logging.log4j.core.util.Builder}. In that case, a static
- * method annotated with
- * {@link org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute}
- * should create the builder class, and
- * the various fields in the builder class should be annotated similarly to the
- * method parameters. However, instead
+ * {@link org.apache.logging.log4j.core.util.Builder}. In that case, a static method annotated with
+ * {@link org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute} should create the builder class, and
+ * the various fields in the builder class should be annotated similarly to the method parameters. However, instead
* of using PluginAttribute, one should use
- * {@link org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute}
- * where the default value can be
- * specified as the default field value instead of as an additional annotation
- * parameter.
+ * {@link org.apache.logging.log4j.core.config.plugins.PluginBuilderAttribute} where the default value can be
+ * specified as the default field value instead of as an additional annotation parameter.
*
*
* In either case, there are also annotations for specifying a
* {@link org.apache.logging.log4j.core.config.Configuration} (
- * {@link org.apache.logging.log4j.core.config.plugins.PluginConfiguration}) or
- * a
+ * {@link org.apache.logging.log4j.core.config.plugins.PluginConfiguration}) or a
* {@link org.apache.logging.log4j.core.config.Node} (
* {@link org.apache.logging.log4j.core.config.plugins.PluginNode}).
*
*
- * Although the happy path works, more work still needs to be done to log
- * incorrect parameters. These will generally
+ * Although the happy path works, more work still needs to be done to log incorrect parameters. These will generally
* result in unhelpful InvocationTargetExceptions.
*
- *
- * @param type the type of plugin to create.
- * @param node the corresponding configuration node for this plugin to create.
+ * @param type the type of plugin to create.
+ * @param node the corresponding configuration node for this plugin to create.
* @param event the LogEvent that spurred the creation of this plugin
- * @return the created plugin object or {@code null} if there was an error
- * setting it up.
+ * @return the created plugin object or {@code null} if there was an error setting it up.
* @see org.apache.logging.log4j.core.config.plugins.util.PluginBuilder
* @see org.apache.logging.log4j.core.config.plugins.visitors.PluginVisitor
* @see org.apache.logging.log4j.core.config.plugins.convert.TypeConverter
@@ -1273,14 +1227,12 @@ private void setParents() {
}
/**
- * Reads an InputStream using buffered reads into a byte array buffer. The given
- * InputStream will remain open after
+ * Reads an InputStream using buffered reads into a byte array buffer. The given InputStream will remain open after
* invocation of this method.
*
* @param is the InputStream to read into a byte array buffer.
* @return a byte array of the InputStream contents.
- * @throws IOException if the {@code read} method of the provided InputStream
- * throws this exception.
+ * @throws IOException if the {@code read} method of the provided InputStream throws this exception.
*/
protected static byte[] toByteArray(final InputStream is) throws IOException {
final ByteArrayOutputStream buffer = new ByteArrayOutputStream();
From f56189c27868780f1b6b9e4f053f6042ce13e0bc Mon Sep 17 00:00:00 2001
From: suvrat1629
Date: Sat, 25 Jan 2025 17:21:16 +0530
Subject: [PATCH 6/8] pr changes
---
.../${test:logging.path}/AsyncLoggerTest.log | 75 ----------
.../${test:logging.path}/rollingtest.1.rolled | 33 -----
.../rollingtest.10.rolled | 32 -----
.../rollingtest.11.rolled | 32 -----
.../rollingtest.12.rolled | 32 -----
.../rollingtest.13.rolled | 32 -----
.../rollingtest.14.rolled | 32 -----
.../rollingtest.15.rolled | 32 -----
.../${test:logging.path}/rollingtest.2.rolled | 33 -----
.../${test:logging.path}/rollingtest.3.rolled | 33 -----
.../${test:logging.path}/rollingtest.4.rolled | 32 -----
.../${test:logging.path}/rollingtest.5.rolled | 32 -----
.../${test:logging.path}/rollingtest.6.rolled | 32 -----
.../${test:logging.path}/rollingtest.7.rolled | 32 -----
.../${test:logging.path}/rollingtest.8.rolled | 32 -----
.../${test:logging.path}/rollingtest.9.rolled | 32 -----
.../${test:logging.path}/rollingtest.current | 17 ---
.../${test:logging.path}/rollingtest.log | 5 -
.../${test:logging.path}/rollingtest.log.1 | 33 -----
.../${test:logging.path}/rollingtest.log.10 | 32 -----
.../${test:logging.path}/rollingtest.log.11 | 32 -----
.../${test:logging.path}/rollingtest.log.12 | 32 -----
.../${test:logging.path}/rollingtest.log.13 | 32 -----
.../${test:logging.path}/rollingtest.log.14 | 32 -----
.../${test:logging.path}/rollingtest.log.15 | 32 -----
.../${test:logging.path}/rollingtest.log.16 | 32 -----
.../${test:logging.path}/rollingtest.log.17 | 32 -----
.../${test:logging.path}/rollingtest.log.18 | 32 -----
.../${test:logging.path}/rollingtest.log.19 | 32 -----
.../${test:logging.path}/rollingtest.log.2 | 33 -----
.../${test:logging.path}/rollingtest.log.20 | 32 -----
.../${test:logging.path}/rollingtest.log.21 | 32 -----
.../${test:logging.path}/rollingtest.log.22 | 32 -----
.../${test:logging.path}/rollingtest.log.23 | 32 -----
.../${test:logging.path}/rollingtest.log.24 | 32 -----
.../${test:logging.path}/rollingtest.log.25 | 32 -----
.../${test:logging.path}/rollingtest.log.26 | 32 -----
.../${test:logging.path}/rollingtest.log.27 | 32 -----
.../${test:logging.path}/rollingtest.log.28 | 32 -----
.../${test:logging.path}/rollingtest.log.29 | 32 -----
.../${test:logging.path}/rollingtest.log.3 | 33 -----
.../${test:logging.path}/rollingtest.log.30 | 32 -----
.../${test:logging.path}/rollingtest.log.31 | 32 -----
.../${test:logging.path}/rollingtest.log.4 | 32 -----
.../${test:logging.path}/rollingtest.log.5 | 32 -----
.../${test:logging.path}/rollingtest.log.6 | 32 -----
.../${test:logging.path}/rollingtest.log.7 | 32 -----
.../${test:logging.path}/rollingtest.log.8 | 32 -----
.../${test:logging.path}/rollingtest.log.9 | 32 -----
.../test-2025-01-14T06-49-1.log.gz | Bin 100 -> 0 bytes
.../test-2025-01-14T06-49-2.log.gz | Bin 102 -> 0 bytes
.../test-2025-01-14T06-49-3.log.gz | Bin 102 -> 0 bytes
.../test-2025-01-14T06-49-4.log.gz | Bin 102 -> 0 bytes
.../test-2025-01-14T06-49-5.log.gz | Bin 101 -> 0 bytes
.../test-2025-01-14T06-49-6.log.gz | Bin 101 -> 0 bytes
.../test-2025-01-14T06-49-7.log | 4 -
.../appender/HttpAppenderBuilderTest.java | 128 ------------------
.../config/AbstractConfigurationTest.java | 15 +-
.../test/resources/log4j-script-filters.xml | 7 +-
.../appender/HttpAppenderBuilderTest.java | 128 ------------------
.../core/config/AbstractConfiguration.java | 23 ++--
.../log4j/core/filter/ScriptFilter.java | 98 +++++++-------
62 files changed, 80 insertions(+), 1898 deletions(-)
delete mode 100644 log4j-core-test/${test:logging.path}/AsyncLoggerTest.log
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.1.rolled
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.10.rolled
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.11.rolled
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.12.rolled
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.13.rolled
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.14.rolled
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.15.rolled
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.2.rolled
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.3.rolled
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.4.rolled
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.5.rolled
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.6.rolled
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.7.rolled
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.8.rolled
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.9.rolled
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.current
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.1
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.10
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.11
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.12
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.13
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.14
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.15
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.16
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.17
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.18
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.19
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.2
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.20
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.21
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.22
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.23
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.24
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.25
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.26
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.27
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.28
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.29
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.3
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.30
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.31
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.4
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.5
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.6
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.7
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.8
delete mode 100644 log4j-core-test/${test:logging.path}/rollingtest.log.9
delete mode 100644 log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-1.log.gz
delete mode 100644 log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-2.log.gz
delete mode 100644 log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-3.log.gz
delete mode 100644 log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-4.log.gz
delete mode 100644 log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-5.log.gz
delete mode 100644 log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-6.log.gz
delete mode 100644 log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-7.log
delete mode 100644 log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/HttpAppenderBuilderTest.java
delete mode 100644 log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpAppenderBuilderTest.java
diff --git a/log4j-core-test/${test:logging.path}/AsyncLoggerTest.log b/log4j-core-test/${test:logging.path}/AsyncLoggerTest.log
deleted file mode 100644
index c83309b3595..00000000000
--- a/log4j-core-test/${test:logging.path}/AsyncLoggerTest.log
+++ /dev/null
@@ -1,75 +0,0 @@
-INFO c.f.Bar mapvalue [stackvalue] {KEY=mapvalue, configProp=configValue, configProp2=configValue2} Async logger msg
-java.lang.InternalError: this is not a real error
- at org.apache.logging.log4j.core.async.AsyncLoggerThreadContextTest.testAsyncLogWritesToLog(AsyncLoggerThreadContextTest.java:64)
- at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
- at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.base/java.lang.reflect.Method.invoke(Method.java:569)
- at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:767)
- at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
- at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
- at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156)
- at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147)
- at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86)
- at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103)
- at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93)
- at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
- at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
- at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
- at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
- at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92)
- at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86)
- at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$8(TestMethodTestDescriptor.java:217)
- at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
- at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213)
- at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138)
- at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68)
- at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:156)
- at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
- at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146)
- at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
- at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144)
- at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
- at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143)
- at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100)
- at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
- at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
- at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160)
- at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
- at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146)
- at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
- at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144)
- at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
- at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143)
- at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100)
- at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
- at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41)
- at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160)
- at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
- at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146)
- at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
- at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144)
- at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
- at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143)
- at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100)
- at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
- at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57)
- at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54)
- at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:198)
- at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169)
- at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93)
- at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58)
- at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141)
- at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57)
- at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103)
- at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:85)
- at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:47)
- at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:56)
- at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)
- at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)
- at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:120)
- at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
- at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
- at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
- at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
-
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.1.rolled b/log4j-core-test/${test:logging.path}/rollingtest.1.rolled
deleted file mode 100644
index ec1efbe7f1b..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.1.rolled
+++ /dev/null
@@ -1,33 +0,0 @@
-This is test message number 0
-This is test message number 1
-This is test message number 2
-This is test message number 3
-This is test message number 4
-This is test message number 5
-This is test message number 6
-This is test message number 7
-This is test message number 8
-This is test message number 9
-This is test message number 10
-This is test message number 11
-This is test message number 12
-This is test message number 13
-This is test message number 14
-This is test message number 15
-This is test message number 16
-This is test message number 17
-This is test message number 18
-This is test message number 19
-This is test message number 20
-This is test message number 21
-This is test message number 22
-This is test message number 23
-This is test message number 24
-This is test message number 25
-This is test message number 26
-This is test message number 27
-This is test message number 28
-This is test message number 29
-This is test message number 30
-This is test message number 31
-This is test message number 32
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.10.rolled b/log4j-core-test/${test:logging.path}/rollingtest.10.rolled
deleted file mode 100644
index 522a0dfd44f..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.10.rolled
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 291
-This is test message number 292
-This is test message number 293
-This is test message number 294
-This is test message number 295
-This is test message number 296
-This is test message number 297
-This is test message number 298
-This is test message number 299
-This is test message number 300
-This is test message number 301
-This is test message number 302
-This is test message number 303
-This is test message number 304
-This is test message number 305
-This is test message number 306
-This is test message number 307
-This is test message number 308
-This is test message number 309
-This is test message number 310
-This is test message number 311
-This is test message number 312
-This is test message number 313
-This is test message number 314
-This is test message number 315
-This is test message number 316
-This is test message number 317
-This is test message number 318
-This is test message number 319
-This is test message number 320
-This is test message number 321
-This is test message number 322
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.11.rolled b/log4j-core-test/${test:logging.path}/rollingtest.11.rolled
deleted file mode 100644
index 3a2dd810ad0..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.11.rolled
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 323
-This is test message number 324
-This is test message number 325
-This is test message number 326
-This is test message number 327
-This is test message number 328
-This is test message number 329
-This is test message number 330
-This is test message number 331
-This is test message number 332
-This is test message number 333
-This is test message number 334
-This is test message number 335
-This is test message number 336
-This is test message number 337
-This is test message number 338
-This is test message number 339
-This is test message number 340
-This is test message number 341
-This is test message number 342
-This is test message number 343
-This is test message number 344
-This is test message number 345
-This is test message number 346
-This is test message number 347
-This is test message number 348
-This is test message number 349
-This is test message number 350
-This is test message number 351
-This is test message number 352
-This is test message number 353
-This is test message number 354
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.12.rolled b/log4j-core-test/${test:logging.path}/rollingtest.12.rolled
deleted file mode 100644
index 70563db3e03..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.12.rolled
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 355
-This is test message number 356
-This is test message number 357
-This is test message number 358
-This is test message number 359
-This is test message number 360
-This is test message number 361
-This is test message number 362
-This is test message number 363
-This is test message number 364
-This is test message number 365
-This is test message number 366
-This is test message number 367
-This is test message number 368
-This is test message number 369
-This is test message number 370
-This is test message number 371
-This is test message number 372
-This is test message number 373
-This is test message number 374
-This is test message number 375
-This is test message number 376
-This is test message number 377
-This is test message number 378
-This is test message number 379
-This is test message number 380
-This is test message number 381
-This is test message number 382
-This is test message number 383
-This is test message number 384
-This is test message number 385
-This is test message number 386
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.13.rolled b/log4j-core-test/${test:logging.path}/rollingtest.13.rolled
deleted file mode 100644
index ca9086946cc..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.13.rolled
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 387
-This is test message number 388
-This is test message number 389
-This is test message number 390
-This is test message number 391
-This is test message number 392
-This is test message number 393
-This is test message number 394
-This is test message number 395
-This is test message number 396
-This is test message number 397
-This is test message number 398
-This is test message number 399
-This is test message number 400
-This is test message number 401
-This is test message number 402
-This is test message number 403
-This is test message number 404
-This is test message number 405
-This is test message number 406
-This is test message number 407
-This is test message number 408
-This is test message number 409
-This is test message number 410
-This is test message number 411
-This is test message number 412
-This is test message number 413
-This is test message number 414
-This is test message number 415
-This is test message number 416
-This is test message number 417
-This is test message number 418
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.14.rolled b/log4j-core-test/${test:logging.path}/rollingtest.14.rolled
deleted file mode 100644
index 5595bdf54a9..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.14.rolled
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 419
-This is test message number 420
-This is test message number 421
-This is test message number 422
-This is test message number 423
-This is test message number 424
-This is test message number 425
-This is test message number 426
-This is test message number 427
-This is test message number 428
-This is test message number 429
-This is test message number 430
-This is test message number 431
-This is test message number 432
-This is test message number 433
-This is test message number 434
-This is test message number 435
-This is test message number 436
-This is test message number 437
-This is test message number 438
-This is test message number 439
-This is test message number 440
-This is test message number 441
-This is test message number 442
-This is test message number 443
-This is test message number 444
-This is test message number 445
-This is test message number 446
-This is test message number 447
-This is test message number 448
-This is test message number 449
-This is test message number 450
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.15.rolled b/log4j-core-test/${test:logging.path}/rollingtest.15.rolled
deleted file mode 100644
index 15d0728ecc5..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.15.rolled
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 451
-This is test message number 452
-This is test message number 453
-This is test message number 454
-This is test message number 455
-This is test message number 456
-This is test message number 457
-This is test message number 458
-This is test message number 459
-This is test message number 460
-This is test message number 461
-This is test message number 462
-This is test message number 463
-This is test message number 464
-This is test message number 465
-This is test message number 466
-This is test message number 467
-This is test message number 468
-This is test message number 469
-This is test message number 470
-This is test message number 471
-This is test message number 472
-This is test message number 473
-This is test message number 474
-This is test message number 475
-This is test message number 476
-This is test message number 477
-This is test message number 478
-This is test message number 479
-This is test message number 480
-This is test message number 481
-This is test message number 482
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.2.rolled b/log4j-core-test/${test:logging.path}/rollingtest.2.rolled
deleted file mode 100644
index 167a15a125a..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.2.rolled
+++ /dev/null
@@ -1,33 +0,0 @@
-This is test message number 33
-This is test message number 34
-This is test message number 35
-This is test message number 36
-This is test message number 37
-This is test message number 38
-This is test message number 39
-This is test message number 40
-This is test message number 41
-This is test message number 42
-This is test message number 43
-This is test message number 44
-This is test message number 45
-This is test message number 46
-This is test message number 47
-This is test message number 48
-This is test message number 49
-This is test message number 50
-This is test message number 51
-This is test message number 52
-This is test message number 53
-This is test message number 54
-This is test message number 55
-This is test message number 56
-This is test message number 57
-This is test message number 58
-This is test message number 59
-This is test message number 60
-This is test message number 61
-This is test message number 62
-This is test message number 63
-This is test message number 64
-This is test message number 65
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.3.rolled b/log4j-core-test/${test:logging.path}/rollingtest.3.rolled
deleted file mode 100644
index e542a8d9283..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.3.rolled
+++ /dev/null
@@ -1,33 +0,0 @@
-This is test message number 66
-This is test message number 67
-This is test message number 68
-This is test message number 69
-This is test message number 70
-This is test message number 71
-This is test message number 72
-This is test message number 73
-This is test message number 74
-This is test message number 75
-This is test message number 76
-This is test message number 77
-This is test message number 78
-This is test message number 79
-This is test message number 80
-This is test message number 81
-This is test message number 82
-This is test message number 83
-This is test message number 84
-This is test message number 85
-This is test message number 86
-This is test message number 87
-This is test message number 88
-This is test message number 89
-This is test message number 90
-This is test message number 91
-This is test message number 92
-This is test message number 93
-This is test message number 94
-This is test message number 95
-This is test message number 96
-This is test message number 97
-This is test message number 98
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.4.rolled b/log4j-core-test/${test:logging.path}/rollingtest.4.rolled
deleted file mode 100644
index e33f1a4fb3c..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.4.rolled
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 99
-This is test message number 100
-This is test message number 101
-This is test message number 102
-This is test message number 103
-This is test message number 104
-This is test message number 105
-This is test message number 106
-This is test message number 107
-This is test message number 108
-This is test message number 109
-This is test message number 110
-This is test message number 111
-This is test message number 112
-This is test message number 113
-This is test message number 114
-This is test message number 115
-This is test message number 116
-This is test message number 117
-This is test message number 118
-This is test message number 119
-This is test message number 120
-This is test message number 121
-This is test message number 122
-This is test message number 123
-This is test message number 124
-This is test message number 125
-This is test message number 126
-This is test message number 127
-This is test message number 128
-This is test message number 129
-This is test message number 130
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.5.rolled b/log4j-core-test/${test:logging.path}/rollingtest.5.rolled
deleted file mode 100644
index 444291767de..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.5.rolled
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 131
-This is test message number 132
-This is test message number 133
-This is test message number 134
-This is test message number 135
-This is test message number 136
-This is test message number 137
-This is test message number 138
-This is test message number 139
-This is test message number 140
-This is test message number 141
-This is test message number 142
-This is test message number 143
-This is test message number 144
-This is test message number 145
-This is test message number 146
-This is test message number 147
-This is test message number 148
-This is test message number 149
-This is test message number 150
-This is test message number 151
-This is test message number 152
-This is test message number 153
-This is test message number 154
-This is test message number 155
-This is test message number 156
-This is test message number 157
-This is test message number 158
-This is test message number 159
-This is test message number 160
-This is test message number 161
-This is test message number 162
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.6.rolled b/log4j-core-test/${test:logging.path}/rollingtest.6.rolled
deleted file mode 100644
index 9b2cf66cdd2..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.6.rolled
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 163
-This is test message number 164
-This is test message number 165
-This is test message number 166
-This is test message number 167
-This is test message number 168
-This is test message number 169
-This is test message number 170
-This is test message number 171
-This is test message number 172
-This is test message number 173
-This is test message number 174
-This is test message number 175
-This is test message number 176
-This is test message number 177
-This is test message number 178
-This is test message number 179
-This is test message number 180
-This is test message number 181
-This is test message number 182
-This is test message number 183
-This is test message number 184
-This is test message number 185
-This is test message number 186
-This is test message number 187
-This is test message number 188
-This is test message number 189
-This is test message number 190
-This is test message number 191
-This is test message number 192
-This is test message number 193
-This is test message number 194
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.7.rolled b/log4j-core-test/${test:logging.path}/rollingtest.7.rolled
deleted file mode 100644
index eb2e566a417..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.7.rolled
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 195
-This is test message number 196
-This is test message number 197
-This is test message number 198
-This is test message number 199
-This is test message number 200
-This is test message number 201
-This is test message number 202
-This is test message number 203
-This is test message number 204
-This is test message number 205
-This is test message number 206
-This is test message number 207
-This is test message number 208
-This is test message number 209
-This is test message number 210
-This is test message number 211
-This is test message number 212
-This is test message number 213
-This is test message number 214
-This is test message number 215
-This is test message number 216
-This is test message number 217
-This is test message number 218
-This is test message number 219
-This is test message number 220
-This is test message number 221
-This is test message number 222
-This is test message number 223
-This is test message number 224
-This is test message number 225
-This is test message number 226
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.8.rolled b/log4j-core-test/${test:logging.path}/rollingtest.8.rolled
deleted file mode 100644
index 2c157c6e6d2..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.8.rolled
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 227
-This is test message number 228
-This is test message number 229
-This is test message number 230
-This is test message number 231
-This is test message number 232
-This is test message number 233
-This is test message number 234
-This is test message number 235
-This is test message number 236
-This is test message number 237
-This is test message number 238
-This is test message number 239
-This is test message number 240
-This is test message number 241
-This is test message number 242
-This is test message number 243
-This is test message number 244
-This is test message number 245
-This is test message number 246
-This is test message number 247
-This is test message number 248
-This is test message number 249
-This is test message number 250
-This is test message number 251
-This is test message number 252
-This is test message number 253
-This is test message number 254
-This is test message number 255
-This is test message number 256
-This is test message number 257
-This is test message number 258
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.9.rolled b/log4j-core-test/${test:logging.path}/rollingtest.9.rolled
deleted file mode 100644
index b3346f0393f..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.9.rolled
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 259
-This is test message number 260
-This is test message number 261
-This is test message number 262
-This is test message number 263
-This is test message number 264
-This is test message number 265
-This is test message number 266
-This is test message number 267
-This is test message number 268
-This is test message number 269
-This is test message number 270
-This is test message number 271
-This is test message number 272
-This is test message number 273
-This is test message number 274
-This is test message number 275
-This is test message number 276
-This is test message number 277
-This is test message number 278
-This is test message number 279
-This is test message number 280
-This is test message number 281
-This is test message number 282
-This is test message number 283
-This is test message number 284
-This is test message number 285
-This is test message number 286
-This is test message number 287
-This is test message number 288
-This is test message number 289
-This is test message number 290
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.current b/log4j-core-test/${test:logging.path}/rollingtest.current
deleted file mode 100644
index 254ef28877a..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.current
+++ /dev/null
@@ -1,17 +0,0 @@
-This is test message number 483
-This is test message number 484
-This is test message number 485
-This is test message number 486
-This is test message number 487
-This is test message number 488
-This is test message number 489
-This is test message number 490
-This is test message number 491
-This is test message number 492
-This is test message number 493
-This is test message number 494
-This is test message number 495
-This is test message number 496
-This is test message number 497
-This is test message number 498
-This is test message number 499
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log b/log4j-core-test/${test:logging.path}/rollingtest.log
deleted file mode 100644
index adc06adf539..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log
+++ /dev/null
@@ -1,5 +0,0 @@
-This is test message number 995
-This is test message number 996
-This is test message number 997
-This is test message number 998
-This is test message number 999
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.1 b/log4j-core-test/${test:logging.path}/rollingtest.log.1
deleted file mode 100644
index ec1efbe7f1b..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.1
+++ /dev/null
@@ -1,33 +0,0 @@
-This is test message number 0
-This is test message number 1
-This is test message number 2
-This is test message number 3
-This is test message number 4
-This is test message number 5
-This is test message number 6
-This is test message number 7
-This is test message number 8
-This is test message number 9
-This is test message number 10
-This is test message number 11
-This is test message number 12
-This is test message number 13
-This is test message number 14
-This is test message number 15
-This is test message number 16
-This is test message number 17
-This is test message number 18
-This is test message number 19
-This is test message number 20
-This is test message number 21
-This is test message number 22
-This is test message number 23
-This is test message number 24
-This is test message number 25
-This is test message number 26
-This is test message number 27
-This is test message number 28
-This is test message number 29
-This is test message number 30
-This is test message number 31
-This is test message number 32
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.10 b/log4j-core-test/${test:logging.path}/rollingtest.log.10
deleted file mode 100644
index 522a0dfd44f..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.10
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 291
-This is test message number 292
-This is test message number 293
-This is test message number 294
-This is test message number 295
-This is test message number 296
-This is test message number 297
-This is test message number 298
-This is test message number 299
-This is test message number 300
-This is test message number 301
-This is test message number 302
-This is test message number 303
-This is test message number 304
-This is test message number 305
-This is test message number 306
-This is test message number 307
-This is test message number 308
-This is test message number 309
-This is test message number 310
-This is test message number 311
-This is test message number 312
-This is test message number 313
-This is test message number 314
-This is test message number 315
-This is test message number 316
-This is test message number 317
-This is test message number 318
-This is test message number 319
-This is test message number 320
-This is test message number 321
-This is test message number 322
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.11 b/log4j-core-test/${test:logging.path}/rollingtest.log.11
deleted file mode 100644
index 3a2dd810ad0..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.11
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 323
-This is test message number 324
-This is test message number 325
-This is test message number 326
-This is test message number 327
-This is test message number 328
-This is test message number 329
-This is test message number 330
-This is test message number 331
-This is test message number 332
-This is test message number 333
-This is test message number 334
-This is test message number 335
-This is test message number 336
-This is test message number 337
-This is test message number 338
-This is test message number 339
-This is test message number 340
-This is test message number 341
-This is test message number 342
-This is test message number 343
-This is test message number 344
-This is test message number 345
-This is test message number 346
-This is test message number 347
-This is test message number 348
-This is test message number 349
-This is test message number 350
-This is test message number 351
-This is test message number 352
-This is test message number 353
-This is test message number 354
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.12 b/log4j-core-test/${test:logging.path}/rollingtest.log.12
deleted file mode 100644
index 70563db3e03..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.12
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 355
-This is test message number 356
-This is test message number 357
-This is test message number 358
-This is test message number 359
-This is test message number 360
-This is test message number 361
-This is test message number 362
-This is test message number 363
-This is test message number 364
-This is test message number 365
-This is test message number 366
-This is test message number 367
-This is test message number 368
-This is test message number 369
-This is test message number 370
-This is test message number 371
-This is test message number 372
-This is test message number 373
-This is test message number 374
-This is test message number 375
-This is test message number 376
-This is test message number 377
-This is test message number 378
-This is test message number 379
-This is test message number 380
-This is test message number 381
-This is test message number 382
-This is test message number 383
-This is test message number 384
-This is test message number 385
-This is test message number 386
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.13 b/log4j-core-test/${test:logging.path}/rollingtest.log.13
deleted file mode 100644
index ca9086946cc..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.13
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 387
-This is test message number 388
-This is test message number 389
-This is test message number 390
-This is test message number 391
-This is test message number 392
-This is test message number 393
-This is test message number 394
-This is test message number 395
-This is test message number 396
-This is test message number 397
-This is test message number 398
-This is test message number 399
-This is test message number 400
-This is test message number 401
-This is test message number 402
-This is test message number 403
-This is test message number 404
-This is test message number 405
-This is test message number 406
-This is test message number 407
-This is test message number 408
-This is test message number 409
-This is test message number 410
-This is test message number 411
-This is test message number 412
-This is test message number 413
-This is test message number 414
-This is test message number 415
-This is test message number 416
-This is test message number 417
-This is test message number 418
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.14 b/log4j-core-test/${test:logging.path}/rollingtest.log.14
deleted file mode 100644
index 5595bdf54a9..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.14
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 419
-This is test message number 420
-This is test message number 421
-This is test message number 422
-This is test message number 423
-This is test message number 424
-This is test message number 425
-This is test message number 426
-This is test message number 427
-This is test message number 428
-This is test message number 429
-This is test message number 430
-This is test message number 431
-This is test message number 432
-This is test message number 433
-This is test message number 434
-This is test message number 435
-This is test message number 436
-This is test message number 437
-This is test message number 438
-This is test message number 439
-This is test message number 440
-This is test message number 441
-This is test message number 442
-This is test message number 443
-This is test message number 444
-This is test message number 445
-This is test message number 446
-This is test message number 447
-This is test message number 448
-This is test message number 449
-This is test message number 450
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.15 b/log4j-core-test/${test:logging.path}/rollingtest.log.15
deleted file mode 100644
index 15d0728ecc5..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.15
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 451
-This is test message number 452
-This is test message number 453
-This is test message number 454
-This is test message number 455
-This is test message number 456
-This is test message number 457
-This is test message number 458
-This is test message number 459
-This is test message number 460
-This is test message number 461
-This is test message number 462
-This is test message number 463
-This is test message number 464
-This is test message number 465
-This is test message number 466
-This is test message number 467
-This is test message number 468
-This is test message number 469
-This is test message number 470
-This is test message number 471
-This is test message number 472
-This is test message number 473
-This is test message number 474
-This is test message number 475
-This is test message number 476
-This is test message number 477
-This is test message number 478
-This is test message number 479
-This is test message number 480
-This is test message number 481
-This is test message number 482
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.16 b/log4j-core-test/${test:logging.path}/rollingtest.log.16
deleted file mode 100644
index 845506f64e4..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.16
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 483
-This is test message number 484
-This is test message number 485
-This is test message number 486
-This is test message number 487
-This is test message number 488
-This is test message number 489
-This is test message number 490
-This is test message number 491
-This is test message number 492
-This is test message number 493
-This is test message number 494
-This is test message number 495
-This is test message number 496
-This is test message number 497
-This is test message number 498
-This is test message number 499
-This is test message number 500
-This is test message number 501
-This is test message number 502
-This is test message number 503
-This is test message number 504
-This is test message number 505
-This is test message number 506
-This is test message number 507
-This is test message number 508
-This is test message number 509
-This is test message number 510
-This is test message number 511
-This is test message number 512
-This is test message number 513
-This is test message number 514
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.17 b/log4j-core-test/${test:logging.path}/rollingtest.log.17
deleted file mode 100644
index 9d388e2c9ca..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.17
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 515
-This is test message number 516
-This is test message number 517
-This is test message number 518
-This is test message number 519
-This is test message number 520
-This is test message number 521
-This is test message number 522
-This is test message number 523
-This is test message number 524
-This is test message number 525
-This is test message number 526
-This is test message number 527
-This is test message number 528
-This is test message number 529
-This is test message number 530
-This is test message number 531
-This is test message number 532
-This is test message number 533
-This is test message number 534
-This is test message number 535
-This is test message number 536
-This is test message number 537
-This is test message number 538
-This is test message number 539
-This is test message number 540
-This is test message number 541
-This is test message number 542
-This is test message number 543
-This is test message number 544
-This is test message number 545
-This is test message number 546
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.18 b/log4j-core-test/${test:logging.path}/rollingtest.log.18
deleted file mode 100644
index 7edbcec552b..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.18
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 547
-This is test message number 548
-This is test message number 549
-This is test message number 550
-This is test message number 551
-This is test message number 552
-This is test message number 553
-This is test message number 554
-This is test message number 555
-This is test message number 556
-This is test message number 557
-This is test message number 558
-This is test message number 559
-This is test message number 560
-This is test message number 561
-This is test message number 562
-This is test message number 563
-This is test message number 564
-This is test message number 565
-This is test message number 566
-This is test message number 567
-This is test message number 568
-This is test message number 569
-This is test message number 570
-This is test message number 571
-This is test message number 572
-This is test message number 573
-This is test message number 574
-This is test message number 575
-This is test message number 576
-This is test message number 577
-This is test message number 578
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.19 b/log4j-core-test/${test:logging.path}/rollingtest.log.19
deleted file mode 100644
index 746d429dd91..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.19
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 579
-This is test message number 580
-This is test message number 581
-This is test message number 582
-This is test message number 583
-This is test message number 584
-This is test message number 585
-This is test message number 586
-This is test message number 587
-This is test message number 588
-This is test message number 589
-This is test message number 590
-This is test message number 591
-This is test message number 592
-This is test message number 593
-This is test message number 594
-This is test message number 595
-This is test message number 596
-This is test message number 597
-This is test message number 598
-This is test message number 599
-This is test message number 600
-This is test message number 601
-This is test message number 602
-This is test message number 603
-This is test message number 604
-This is test message number 605
-This is test message number 606
-This is test message number 607
-This is test message number 608
-This is test message number 609
-This is test message number 610
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.2 b/log4j-core-test/${test:logging.path}/rollingtest.log.2
deleted file mode 100644
index 167a15a125a..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.2
+++ /dev/null
@@ -1,33 +0,0 @@
-This is test message number 33
-This is test message number 34
-This is test message number 35
-This is test message number 36
-This is test message number 37
-This is test message number 38
-This is test message number 39
-This is test message number 40
-This is test message number 41
-This is test message number 42
-This is test message number 43
-This is test message number 44
-This is test message number 45
-This is test message number 46
-This is test message number 47
-This is test message number 48
-This is test message number 49
-This is test message number 50
-This is test message number 51
-This is test message number 52
-This is test message number 53
-This is test message number 54
-This is test message number 55
-This is test message number 56
-This is test message number 57
-This is test message number 58
-This is test message number 59
-This is test message number 60
-This is test message number 61
-This is test message number 62
-This is test message number 63
-This is test message number 64
-This is test message number 65
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.20 b/log4j-core-test/${test:logging.path}/rollingtest.log.20
deleted file mode 100644
index 02798d268f5..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.20
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 611
-This is test message number 612
-This is test message number 613
-This is test message number 614
-This is test message number 615
-This is test message number 616
-This is test message number 617
-This is test message number 618
-This is test message number 619
-This is test message number 620
-This is test message number 621
-This is test message number 622
-This is test message number 623
-This is test message number 624
-This is test message number 625
-This is test message number 626
-This is test message number 627
-This is test message number 628
-This is test message number 629
-This is test message number 630
-This is test message number 631
-This is test message number 632
-This is test message number 633
-This is test message number 634
-This is test message number 635
-This is test message number 636
-This is test message number 637
-This is test message number 638
-This is test message number 639
-This is test message number 640
-This is test message number 641
-This is test message number 642
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.21 b/log4j-core-test/${test:logging.path}/rollingtest.log.21
deleted file mode 100644
index 137152a3ed2..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.21
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 643
-This is test message number 644
-This is test message number 645
-This is test message number 646
-This is test message number 647
-This is test message number 648
-This is test message number 649
-This is test message number 650
-This is test message number 651
-This is test message number 652
-This is test message number 653
-This is test message number 654
-This is test message number 655
-This is test message number 656
-This is test message number 657
-This is test message number 658
-This is test message number 659
-This is test message number 660
-This is test message number 661
-This is test message number 662
-This is test message number 663
-This is test message number 664
-This is test message number 665
-This is test message number 666
-This is test message number 667
-This is test message number 668
-This is test message number 669
-This is test message number 670
-This is test message number 671
-This is test message number 672
-This is test message number 673
-This is test message number 674
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.22 b/log4j-core-test/${test:logging.path}/rollingtest.log.22
deleted file mode 100644
index b8eea22d99b..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.22
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 675
-This is test message number 676
-This is test message number 677
-This is test message number 678
-This is test message number 679
-This is test message number 680
-This is test message number 681
-This is test message number 682
-This is test message number 683
-This is test message number 684
-This is test message number 685
-This is test message number 686
-This is test message number 687
-This is test message number 688
-This is test message number 689
-This is test message number 690
-This is test message number 691
-This is test message number 692
-This is test message number 693
-This is test message number 694
-This is test message number 695
-This is test message number 696
-This is test message number 697
-This is test message number 698
-This is test message number 699
-This is test message number 700
-This is test message number 701
-This is test message number 702
-This is test message number 703
-This is test message number 704
-This is test message number 705
-This is test message number 706
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.23 b/log4j-core-test/${test:logging.path}/rollingtest.log.23
deleted file mode 100644
index c6c3a86b1ad..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.23
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 707
-This is test message number 708
-This is test message number 709
-This is test message number 710
-This is test message number 711
-This is test message number 712
-This is test message number 713
-This is test message number 714
-This is test message number 715
-This is test message number 716
-This is test message number 717
-This is test message number 718
-This is test message number 719
-This is test message number 720
-This is test message number 721
-This is test message number 722
-This is test message number 723
-This is test message number 724
-This is test message number 725
-This is test message number 726
-This is test message number 727
-This is test message number 728
-This is test message number 729
-This is test message number 730
-This is test message number 731
-This is test message number 732
-This is test message number 733
-This is test message number 734
-This is test message number 735
-This is test message number 736
-This is test message number 737
-This is test message number 738
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.24 b/log4j-core-test/${test:logging.path}/rollingtest.log.24
deleted file mode 100644
index 0cda500b60d..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.24
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 739
-This is test message number 740
-This is test message number 741
-This is test message number 742
-This is test message number 743
-This is test message number 744
-This is test message number 745
-This is test message number 746
-This is test message number 747
-This is test message number 748
-This is test message number 749
-This is test message number 750
-This is test message number 751
-This is test message number 752
-This is test message number 753
-This is test message number 754
-This is test message number 755
-This is test message number 756
-This is test message number 757
-This is test message number 758
-This is test message number 759
-This is test message number 760
-This is test message number 761
-This is test message number 762
-This is test message number 763
-This is test message number 764
-This is test message number 765
-This is test message number 766
-This is test message number 767
-This is test message number 768
-This is test message number 769
-This is test message number 770
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.25 b/log4j-core-test/${test:logging.path}/rollingtest.log.25
deleted file mode 100644
index f9fbd838a44..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.25
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 771
-This is test message number 772
-This is test message number 773
-This is test message number 774
-This is test message number 775
-This is test message number 776
-This is test message number 777
-This is test message number 778
-This is test message number 779
-This is test message number 780
-This is test message number 781
-This is test message number 782
-This is test message number 783
-This is test message number 784
-This is test message number 785
-This is test message number 786
-This is test message number 787
-This is test message number 788
-This is test message number 789
-This is test message number 790
-This is test message number 791
-This is test message number 792
-This is test message number 793
-This is test message number 794
-This is test message number 795
-This is test message number 796
-This is test message number 797
-This is test message number 798
-This is test message number 799
-This is test message number 800
-This is test message number 801
-This is test message number 802
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.26 b/log4j-core-test/${test:logging.path}/rollingtest.log.26
deleted file mode 100644
index 748e0c97ef7..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.26
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 803
-This is test message number 804
-This is test message number 805
-This is test message number 806
-This is test message number 807
-This is test message number 808
-This is test message number 809
-This is test message number 810
-This is test message number 811
-This is test message number 812
-This is test message number 813
-This is test message number 814
-This is test message number 815
-This is test message number 816
-This is test message number 817
-This is test message number 818
-This is test message number 819
-This is test message number 820
-This is test message number 821
-This is test message number 822
-This is test message number 823
-This is test message number 824
-This is test message number 825
-This is test message number 826
-This is test message number 827
-This is test message number 828
-This is test message number 829
-This is test message number 830
-This is test message number 831
-This is test message number 832
-This is test message number 833
-This is test message number 834
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.27 b/log4j-core-test/${test:logging.path}/rollingtest.log.27
deleted file mode 100644
index 4c3ea867bbb..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.27
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 835
-This is test message number 836
-This is test message number 837
-This is test message number 838
-This is test message number 839
-This is test message number 840
-This is test message number 841
-This is test message number 842
-This is test message number 843
-This is test message number 844
-This is test message number 845
-This is test message number 846
-This is test message number 847
-This is test message number 848
-This is test message number 849
-This is test message number 850
-This is test message number 851
-This is test message number 852
-This is test message number 853
-This is test message number 854
-This is test message number 855
-This is test message number 856
-This is test message number 857
-This is test message number 858
-This is test message number 859
-This is test message number 860
-This is test message number 861
-This is test message number 862
-This is test message number 863
-This is test message number 864
-This is test message number 865
-This is test message number 866
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.28 b/log4j-core-test/${test:logging.path}/rollingtest.log.28
deleted file mode 100644
index 5e52ccdeb1c..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.28
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 867
-This is test message number 868
-This is test message number 869
-This is test message number 870
-This is test message number 871
-This is test message number 872
-This is test message number 873
-This is test message number 874
-This is test message number 875
-This is test message number 876
-This is test message number 877
-This is test message number 878
-This is test message number 879
-This is test message number 880
-This is test message number 881
-This is test message number 882
-This is test message number 883
-This is test message number 884
-This is test message number 885
-This is test message number 886
-This is test message number 887
-This is test message number 888
-This is test message number 889
-This is test message number 890
-This is test message number 891
-This is test message number 892
-This is test message number 893
-This is test message number 894
-This is test message number 895
-This is test message number 896
-This is test message number 897
-This is test message number 898
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.29 b/log4j-core-test/${test:logging.path}/rollingtest.log.29
deleted file mode 100644
index ab7fd72f02f..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.29
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 899
-This is test message number 900
-This is test message number 901
-This is test message number 902
-This is test message number 903
-This is test message number 904
-This is test message number 905
-This is test message number 906
-This is test message number 907
-This is test message number 908
-This is test message number 909
-This is test message number 910
-This is test message number 911
-This is test message number 912
-This is test message number 913
-This is test message number 914
-This is test message number 915
-This is test message number 916
-This is test message number 917
-This is test message number 918
-This is test message number 919
-This is test message number 920
-This is test message number 921
-This is test message number 922
-This is test message number 923
-This is test message number 924
-This is test message number 925
-This is test message number 926
-This is test message number 927
-This is test message number 928
-This is test message number 929
-This is test message number 930
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.3 b/log4j-core-test/${test:logging.path}/rollingtest.log.3
deleted file mode 100644
index e542a8d9283..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.3
+++ /dev/null
@@ -1,33 +0,0 @@
-This is test message number 66
-This is test message number 67
-This is test message number 68
-This is test message number 69
-This is test message number 70
-This is test message number 71
-This is test message number 72
-This is test message number 73
-This is test message number 74
-This is test message number 75
-This is test message number 76
-This is test message number 77
-This is test message number 78
-This is test message number 79
-This is test message number 80
-This is test message number 81
-This is test message number 82
-This is test message number 83
-This is test message number 84
-This is test message number 85
-This is test message number 86
-This is test message number 87
-This is test message number 88
-This is test message number 89
-This is test message number 90
-This is test message number 91
-This is test message number 92
-This is test message number 93
-This is test message number 94
-This is test message number 95
-This is test message number 96
-This is test message number 97
-This is test message number 98
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.30 b/log4j-core-test/${test:logging.path}/rollingtest.log.30
deleted file mode 100644
index fc5c2acb546..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.30
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 931
-This is test message number 932
-This is test message number 933
-This is test message number 934
-This is test message number 935
-This is test message number 936
-This is test message number 937
-This is test message number 938
-This is test message number 939
-This is test message number 940
-This is test message number 941
-This is test message number 942
-This is test message number 943
-This is test message number 944
-This is test message number 945
-This is test message number 946
-This is test message number 947
-This is test message number 948
-This is test message number 949
-This is test message number 950
-This is test message number 951
-This is test message number 952
-This is test message number 953
-This is test message number 954
-This is test message number 955
-This is test message number 956
-This is test message number 957
-This is test message number 958
-This is test message number 959
-This is test message number 960
-This is test message number 961
-This is test message number 962
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.31 b/log4j-core-test/${test:logging.path}/rollingtest.log.31
deleted file mode 100644
index 679e15b80ce..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.31
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 963
-This is test message number 964
-This is test message number 965
-This is test message number 966
-This is test message number 967
-This is test message number 968
-This is test message number 969
-This is test message number 970
-This is test message number 971
-This is test message number 972
-This is test message number 973
-This is test message number 974
-This is test message number 975
-This is test message number 976
-This is test message number 977
-This is test message number 978
-This is test message number 979
-This is test message number 980
-This is test message number 981
-This is test message number 982
-This is test message number 983
-This is test message number 984
-This is test message number 985
-This is test message number 986
-This is test message number 987
-This is test message number 988
-This is test message number 989
-This is test message number 990
-This is test message number 991
-This is test message number 992
-This is test message number 993
-This is test message number 994
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.4 b/log4j-core-test/${test:logging.path}/rollingtest.log.4
deleted file mode 100644
index e33f1a4fb3c..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.4
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 99
-This is test message number 100
-This is test message number 101
-This is test message number 102
-This is test message number 103
-This is test message number 104
-This is test message number 105
-This is test message number 106
-This is test message number 107
-This is test message number 108
-This is test message number 109
-This is test message number 110
-This is test message number 111
-This is test message number 112
-This is test message number 113
-This is test message number 114
-This is test message number 115
-This is test message number 116
-This is test message number 117
-This is test message number 118
-This is test message number 119
-This is test message number 120
-This is test message number 121
-This is test message number 122
-This is test message number 123
-This is test message number 124
-This is test message number 125
-This is test message number 126
-This is test message number 127
-This is test message number 128
-This is test message number 129
-This is test message number 130
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.5 b/log4j-core-test/${test:logging.path}/rollingtest.log.5
deleted file mode 100644
index 444291767de..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.5
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 131
-This is test message number 132
-This is test message number 133
-This is test message number 134
-This is test message number 135
-This is test message number 136
-This is test message number 137
-This is test message number 138
-This is test message number 139
-This is test message number 140
-This is test message number 141
-This is test message number 142
-This is test message number 143
-This is test message number 144
-This is test message number 145
-This is test message number 146
-This is test message number 147
-This is test message number 148
-This is test message number 149
-This is test message number 150
-This is test message number 151
-This is test message number 152
-This is test message number 153
-This is test message number 154
-This is test message number 155
-This is test message number 156
-This is test message number 157
-This is test message number 158
-This is test message number 159
-This is test message number 160
-This is test message number 161
-This is test message number 162
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.6 b/log4j-core-test/${test:logging.path}/rollingtest.log.6
deleted file mode 100644
index 9b2cf66cdd2..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.6
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 163
-This is test message number 164
-This is test message number 165
-This is test message number 166
-This is test message number 167
-This is test message number 168
-This is test message number 169
-This is test message number 170
-This is test message number 171
-This is test message number 172
-This is test message number 173
-This is test message number 174
-This is test message number 175
-This is test message number 176
-This is test message number 177
-This is test message number 178
-This is test message number 179
-This is test message number 180
-This is test message number 181
-This is test message number 182
-This is test message number 183
-This is test message number 184
-This is test message number 185
-This is test message number 186
-This is test message number 187
-This is test message number 188
-This is test message number 189
-This is test message number 190
-This is test message number 191
-This is test message number 192
-This is test message number 193
-This is test message number 194
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.7 b/log4j-core-test/${test:logging.path}/rollingtest.log.7
deleted file mode 100644
index eb2e566a417..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.7
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 195
-This is test message number 196
-This is test message number 197
-This is test message number 198
-This is test message number 199
-This is test message number 200
-This is test message number 201
-This is test message number 202
-This is test message number 203
-This is test message number 204
-This is test message number 205
-This is test message number 206
-This is test message number 207
-This is test message number 208
-This is test message number 209
-This is test message number 210
-This is test message number 211
-This is test message number 212
-This is test message number 213
-This is test message number 214
-This is test message number 215
-This is test message number 216
-This is test message number 217
-This is test message number 218
-This is test message number 219
-This is test message number 220
-This is test message number 221
-This is test message number 222
-This is test message number 223
-This is test message number 224
-This is test message number 225
-This is test message number 226
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.8 b/log4j-core-test/${test:logging.path}/rollingtest.log.8
deleted file mode 100644
index 2c157c6e6d2..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.8
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 227
-This is test message number 228
-This is test message number 229
-This is test message number 230
-This is test message number 231
-This is test message number 232
-This is test message number 233
-This is test message number 234
-This is test message number 235
-This is test message number 236
-This is test message number 237
-This is test message number 238
-This is test message number 239
-This is test message number 240
-This is test message number 241
-This is test message number 242
-This is test message number 243
-This is test message number 244
-This is test message number 245
-This is test message number 246
-This is test message number 247
-This is test message number 248
-This is test message number 249
-This is test message number 250
-This is test message number 251
-This is test message number 252
-This is test message number 253
-This is test message number 254
-This is test message number 255
-This is test message number 256
-This is test message number 257
-This is test message number 258
diff --git a/log4j-core-test/${test:logging.path}/rollingtest.log.9 b/log4j-core-test/${test:logging.path}/rollingtest.log.9
deleted file mode 100644
index b3346f0393f..00000000000
--- a/log4j-core-test/${test:logging.path}/rollingtest.log.9
+++ /dev/null
@@ -1,32 +0,0 @@
-This is test message number 259
-This is test message number 260
-This is test message number 261
-This is test message number 262
-This is test message number 263
-This is test message number 264
-This is test message number 265
-This is test message number 266
-This is test message number 267
-This is test message number 268
-This is test message number 269
-This is test message number 270
-This is test message number 271
-This is test message number 272
-This is test message number 273
-This is test message number 274
-This is test message number 275
-This is test message number 276
-This is test message number 277
-This is test message number 278
-This is test message number 279
-This is test message number 280
-This is test message number 281
-This is test message number 282
-This is test message number 283
-This is test message number 284
-This is test message number 285
-This is test message number 286
-This is test message number 287
-This is test message number 288
-This is test message number 289
-This is test message number 290
diff --git a/log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-1.log.gz b/log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-1.log.gz
deleted file mode 100644
index 7e12d8f3615f0a07b5bba30a19fc1672a34399fc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 100
zcmb2|=3oGW|J)}}=!7vWnsnunQ0tv5j~*TQ64JWo(w!w&lvtT<*9q8MYWuOY_k*|e
ze%8Z}IHkVp*5T{pZp&mZsK#4T2oz&P?^4URw#NZ{1fRfX@Bkjc6?_4Qe-ZvE{8RX+@K5W%A9fK!
IK>z{(0NB7TIRF3v
diff --git a/log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-5.log.gz b/log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-5.log.gz
deleted file mode 100644
index 0a0535f2f03a7b535dfa9ce659687ff298cb4093..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 101
zcmb2|=3oGW|E(8x^EMdpFkGCcX~XzP`mkJNgNIl^3sd{wlPs1mcU_O&lQ%ueP=C_d
zzZSmp^wq0Xb!x?<_cgH>u--rLecNjWyC(k!#uk5qe=Pst|8V{x`?de;-i7~hWnf}p
F007X0D`Wrw
diff --git a/log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-6.log.gz b/log4j-core-test/${test:logging.path}/test-2025-01-14T06-49-6.log.gz
deleted file mode 100644
index ca1c13c42ff76363033f6de9e2d08895f0740243..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 101
zcmb2|=3oGW|E(8x^EMdpFkGCcX~X!)e~-JE!X#Fag$EMrjU4@Uy(<-8e|u@zneLQg
zd%wxgPoIqAbiRLdTK@y#A3XaS)<2N`!6$cM>szk>BL6i11piq6!T status.getMessage().getFormattedMessage()
- .contains("No layout configured for HttpAppender 'Http'")),
- "Expected error message was not logged"
- );
- }
-
- @Test
- @UsingStatusListener
- void testMissingUrl(final ListStatusListener listener) {
- // Build the appender without a URL
- HttpAppender appender = HttpAppender.newBuilder()
- .setName("Http")
- .setLayout(new JsonLayout.Builder().build())
- .build();
-
- // Assert that the appender is null
- assertNull(appender, "Appender should be null when URL is missing");
-
- // Verify that an ERROR log message was recorded
- assertTrue(
- listener.findStatusData(Level.ERROR)
- .stream()
- .anyMatch(status -> status.getMessage().getFormattedMessage()
- .contains("No URL configured for HttpAppender 'Http'")),
- "Expected error message was not logged"
- );
- }
-
- @Test
- @UsingStatusListener
- void testMissingName(final ListStatusListener listener) throws Exception {
- // Build the appender without a name
- HttpAppender appender = HttpAppender.newBuilder()
- .setUrl(new URL("https://localhost"))
- .setLayout(new JsonLayout.Builder().build())
- .build();
-
- // Assert that the appender is null
- assertNull(appender, "Appender should be null when name is missing");
-
- // Verify that an ERROR log message was recorded
- assertTrue(
- listener.findStatusData(Level.ERROR)
- .stream()
- .anyMatch(status -> status.getMessage().getFormattedMessage()
- .contains("No name configured for HttpAppender")),
- "Expected error message was not logged"
- );
- }
-
- @Test
- void testValidAppenderCreation() throws Exception {
- // Build the appender with all required properties
- HttpAppender appender = HttpAppender.newBuilder()
- .setName("Http")
- .setUrl(new URL("https://localhost"))
- .setLayout(new JsonLayout.Builder().build())
- .build();
-
- // Assert that the appender is not null
- assertNotNull(appender, "Appender should be created successfully with valid properties");
- }
-}
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/AbstractConfigurationTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/AbstractConfigurationTest.java
index 91d4405edf2..3080134524d 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/AbstractConfigurationTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/AbstractConfigurationTest.java
@@ -79,17 +79,30 @@ public void setup() {
rootLogger.getAttributes().put("level", "INFO");
loggers.getChildren().add(rootLogger);
- if (map != null) {
+ // Add Properties Node only if the map is not null and has entries
+ if (map != null && !map.isEmpty()) {
final Node properties = newNode(rootNode, "Properties");
rootNode.getChildren().add(properties);
for (final Entry entry : map.entrySet()) {
+ // Create Property node with "name" and "value" attributes
final Node property = newNode(properties, "Property");
property.getAttributes().put("name", entry.getKey());
property.getAttributes().put("value", entry.getValue());
properties.getChildren().add(property);
}
}
+
+ // Add a Scripts Node if required (Example for flexibility in testing)
+ final Node scripts = newNode(rootNode, "Scripts");
+ rootNode.getChildren().add(scripts);
+
+ // Add sample script node for testing purposes
+ final Node script = newNode(scripts, "Script");
+ script.getAttributes().put("name", "TestScript");
+ script.getAttributes().put("language", "JavaScript");
+ script.getAttributes().put("scriptText", "print('Hello, Log4j!');");
+ scripts.getChildren().add(script);
}
private Node newNode(final Node parent, final String name) {
diff --git a/log4j-core-test/src/test/resources/log4j-script-filters.xml b/log4j-core-test/src/test/resources/log4j-script-filters.xml
index 722a069bafb..5708228f63f 100644
--- a/log4j-core-test/src/test/resources/log4j-script-filters.xml
+++ b/log4j-core-test/src/test/resources/log4j-script-filters.xml
@@ -18,12 +18,7 @@
- [suvrat@suvrat logging-log4j2]$ git push
-Username for 'https://github.com': suvrat1629
-Password for 'https://suvrat1629@github.com':
-remote: Support for password authentication was removed on August 13, 2021.
-remote: Please see https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
-fatal: Authentication failed for 'https://github.com/Suvrat1629/logging-log4j2.git/'
+
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpAppenderBuilderTest.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpAppenderBuilderTest.java
deleted file mode 100644
index 5919d40c819..00000000000
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/HttpAppenderBuilderTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-package org.apache.logging.log4j.core.appender;
-
-import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
-import static com.github.tomakehurst.wiremock.client.WireMock.containing;
-import static com.github.tomakehurst.wiremock.client.WireMock.equalTo;
-import static com.github.tomakehurst.wiremock.client.WireMock.post;
-import static com.github.tomakehurst.wiremock.client.WireMock.postRequestedFor;
-import static com.github.tomakehurst.wiremock.client.WireMock.put;
-import static com.github.tomakehurst.wiremock.client.WireMock.putRequestedFor;
-import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo;
-import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
-import com.github.tomakehurst.wiremock.client.ResponseDefinitionBuilder;
-import com.github.tomakehurst.wiremock.junit5.WireMockExtension;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.List;
-import java.util.stream.Collectors;
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.core.Appender;
-import org.apache.logging.log4j.core.LogEvent;
-import org.apache.logging.log4j.core.config.Configuration;
-import org.apache.logging.log4j.core.config.DefaultConfiguration;
-import org.apache.logging.log4j.core.config.Property;
-import org.apache.logging.log4j.core.impl.Log4jLogEvent;
-import org.apache.logging.log4j.core.layout.JsonLayout;
-import org.apache.logging.log4j.core.lookup.JavaLookup;
-import org.apache.logging.log4j.core.net.ssl.KeyStoreConfiguration;
-import org.apache.logging.log4j.core.net.ssl.SslConfiguration;
-import org.apache.logging.log4j.core.net.ssl.SslKeyStoreConstants;
-import org.apache.logging.log4j.core.net.ssl.TrustStoreConfiguration;
-import org.apache.logging.log4j.message.SimpleMessage;
-import org.apache.logging.log4j.status.StatusData;
-import org.apache.logging.log4j.test.ListStatusListener;
-import org.apache.logging.log4j.test.junit.UsingStatusListener;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.DisabledOnOs;
-import org.junit.jupiter.api.condition.OS;
-import org.junit.jupiter.api.extension.RegisterExtension;
-
-import java.net.URL;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-@StatusLoggerLevel(Level.ERROR) // Ensure the logger captures ERROR level messages
-class HttpAppenderBuilderTest {
-
- @Test
- @UsingStatusListener
- void testMissingLayout(final ListStatusListener listener) throws Exception {
- // Build the appender without a layout
- HttpAppender appender = HttpAppender.newBuilder()
- .setName("Http")
- .setUrl(new URL("https://localhost"))
- .build();
-
- // Assert that the appender is null
- assertNull(appender, "Appender should be null when layout is missing");
-
- // Verify that an ERROR log message was recorded
- assertTrue(
- listener.findStatusData(Level.ERROR)
- .stream()
- .anyMatch(status -> status.getMessage().getFormattedMessage()
- .contains("No layout configured for HttpAppender 'Http'")),
- "Expected error message was not logged"
- );
- }
-
- @Test
- @UsingStatusListener
- void testMissingUrl(final ListStatusListener listener) {
- // Build the appender without a URL
- HttpAppender appender = HttpAppender.newBuilder()
- .setName("Http")
- .setLayout(new JsonLayout.Builder().build())
- .build();
-
- // Assert that the appender is null
- assertNull(appender, "Appender should be null when URL is missing");
-
- // Verify that an ERROR log message was recorded
- assertTrue(
- listener.findStatusData(Level.ERROR)
- .stream()
- .anyMatch(status -> status.getMessage().getFormattedMessage()
- .contains("No URL configured for HttpAppender 'Http'")),
- "Expected error message was not logged"
- );
- }
-
- @Test
- @UsingStatusListener
- void testMissingName(final ListStatusListener listener) throws Exception {
- // Build the appender without a name
- HttpAppender appender = HttpAppender.newBuilder()
- .setUrl(new URL("https://localhost"))
- .setLayout(new JsonLayout.Builder().build())
- .build();
-
- // Assert that the appender is null
- assertNull(appender, "Appender should be null when name is missing");
-
- // Verify that an ERROR log message was recorded
- assertTrue(
- listener.findStatusData(Level.ERROR)
- .stream()
- .anyMatch(status -> status.getMessage().getFormattedMessage()
- .contains("No name configured for HttpAppender")),
- "Expected error message was not logged"
- );
- }
-
- @Test
- void testValidAppenderCreation() throws Exception {
- // Build the appender with all required properties
- HttpAppender appender = HttpAppender.newBuilder()
- .setName("Http")
- .setUrl(new URL("https://localhost"))
- .setLayout(new JsonLayout.Builder().build())
- .build();
-
- // Assert that the appender is not null
- assertNotNull(appender, "Appender should be created successfully with valid properties");
- }
-}
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
index d5c9349ce7b..7aaf919978d 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AbstractConfiguration.java
@@ -574,6 +574,7 @@ protected void preConfigure(final Node node) {
/**
* Process conditions by evaluating them and including the children of conditions that are true
* and discarding those that are not.
+ *
* @param node The node to evaluate.
*/
protected void processConditionals(final Node node) {
@@ -625,6 +626,7 @@ protected void processConditionals(final Node node) {
/**
* Handle Select nodes. This finds the first child condition that returns true and attaches its children
* to the parent of the Select Node. Other Nodes are discarded.
+ *
* @param selectNode The Select Node.
* @param type The PluginType of the Select Node.
* @return The list of Nodes to be added to the parent.
@@ -687,13 +689,11 @@ protected void doConfigure() {
configurationStrSubstitutor.setVariableResolver(interpolator);
}
- Node scriptsNode = null;
for (final Node node : rootNode.getChildren()) {
if ("Scripts".equalsIgnoreCase(node.getName())) {
- scriptsNode = node;
- createConfiguration(scriptsNode, null);
- if (scriptsNode.getObject() != null) {
- for (final AbstractScript script : scriptsNode.getObject(AbstractScript[].class)) {
+ createConfiguration(node, null);
+ if (node.getObject() != null) {
+ for (final AbstractScript script : node.getObject(AbstractScript[].class)) {
if (script instanceof ScriptRef) {
LOGGER.error(
"Script reference to {} not added. Scripts definition cannot contain script references",
@@ -904,7 +904,8 @@ public ReliabilityStrategy getReliabilityStrategy(final LoggerConfig loggerConfi
*
* Note: This method is not used when configuring via configuration. It is primarily used by unit tests.
*
- * @param logger The Logger the Appender will be associated with.
+ *
+ * @param logger The Logger the Appender will be associated with.
* @param appender The Appender.
*/
@Override
@@ -934,6 +935,7 @@ public synchronized void addLoggerAppender(
*
* Note: This method is not used when configuring via configuration. It is primarily used by unit tests.
*
+ *
* @param logger The Logger the Footer will be associated with.
* @param filter The Filter.
*/
@@ -959,7 +961,8 @@ public synchronized void addLoggerFilter(final org.apache.logging.log4j.core.Log
*
* Note: This method is not used when configuring via configuration. It is primarily used by unit tests.
*
- * @param logger The Logger the Appender will be associated with.
+ *
+ * @param logger The Logger the Appender will be associated with.
* @param additive True if the LoggerConfig should be additive, false otherwise.
*/
@Override
@@ -1110,6 +1113,7 @@ public void createConfiguration(final Node node, final LogEvent event) {
/**
* This method is used by Arbiters to create specific children.
+ *
* @param type The PluginType.
* @param node The Node.
* @return The created object or null;
@@ -1153,8 +1157,9 @@ public Object createPluginObject(final PluginType> type, final Node node) {
* Although the happy path works, more work still needs to be done to log incorrect parameters. These will generally
* result in unhelpful InvocationTargetExceptions.
*
- * @param type the type of plugin to create.
- * @param node the corresponding configuration node for this plugin to create.
+ *
+ * @param type the type of plugin to create.
+ * @param node the corresponding configuration node for this plugin to create.
* @param event the LogEvent that spurred the creation of this plugin
* @return the created plugin object or {@code null} if there was an error setting it up.
* @see org.apache.logging.log4j.core.config.plugins.util.PluginBuilder
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ScriptFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ScriptFilter.java
index acb5be3b969..dc528585ca1 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ScriptFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/ScriptFilter.java
@@ -37,14 +37,15 @@
import org.apache.logging.log4j.status.StatusLogger;
/**
- * Returns the onMatch result if the script returns True and returns the onMismatch value otherwise.
+ * Returns the onMatch result if the script returns True and returns the
+ * onMismatch value otherwise.
*/
@Plugin(name = "ScriptFilter", category = Node.CATEGORY, elementType = Filter.ELEMENT_TYPE, printObject = true)
public final class ScriptFilter extends AbstractFilter {
- private static final org.apache.logging.log4j.Logger LOGGER = StatusLogger.getLogger();
+ private static org.apache.logging.log4j.Logger logger = StatusLogger.getLogger();
- private AbstractScript script;
+ private final AbstractScript script;
private final Configuration configuration;
private ScriptFilter(
@@ -57,66 +58,47 @@ private ScriptFilter(
this.configuration = configuration;
}
- @Override
- public void start() {
- super.start();
- if (script instanceof ScriptRef) {
- AbstractScript resolvedScript = configuration.getScriptManager().getScript(script.getName());
- if (resolvedScript == null) {
- LOGGER.error("No script with name {} has been declared.", script.getName());
- // Optionally: mark the filter as unusable or handle failure gracefully
- return;
- }
- this.script = resolvedScript; // Update to resolved script
- } else {
- if (!configuration.getScriptManager().addScript(script)) {
- LOGGER.error("Failed to add script {} to the ScriptManager.", script.getName());
- }
- }
- }
-
@Override
public Result filter(
final Logger logger, final Level level, final Marker marker, final String msg, final Object... params) {
- return executeScript(logger, level, marker, new SimpleMessage(msg), params, null);
+ final SimpleBindings bindings = new SimpleBindings();
+ bindings.put("logger", logger);
+ bindings.put("level", level);
+ bindings.put("marker", marker);
+ bindings.put("message", new SimpleMessage(msg));
+ bindings.put("parameters", params);
+ bindings.put("throwable", null);
+ bindings.putAll(configuration.getProperties());
+ bindings.put("substitutor", configuration.getStrSubstitutor());
+ final Object object = configuration.getScriptManager().execute(script.getName(), bindings);
+ return object == null || !Boolean.TRUE.equals(object) ? onMismatch : onMatch;
}
@Override
public Result filter(
final Logger logger, final Level level, final Marker marker, final Object msg, final Throwable t) {
- Message message = msg instanceof String ? new SimpleMessage((String) msg) : new ObjectMessage(msg);
- return executeScript(logger, level, marker, message, null, t);
- }
-
- @Override
- public Result filter(
- final Logger logger, final Level level, final Marker marker, final Message msg, final Throwable t) {
- return executeScript(logger, level, marker, msg, null, t);
- }
-
- @Override
- public Result filter(final LogEvent event) {
final SimpleBindings bindings = new SimpleBindings();
- bindings.put("logEvent", event);
+ bindings.put("logger", logger);
+ bindings.put("level", level);
+ bindings.put("marker", marker);
+ bindings.put("message", msg instanceof String ? new SimpleMessage((String) msg) : new ObjectMessage(msg));
+ bindings.put("parameters", null);
+ bindings.put("throwable", t);
bindings.putAll(configuration.getProperties());
bindings.put("substitutor", configuration.getStrSubstitutor());
final Object object = configuration.getScriptManager().execute(script.getName(), bindings);
return object == null || !Boolean.TRUE.equals(object) ? onMismatch : onMatch;
}
- private Result executeScript(
- final Logger logger,
- final Level level,
- final Marker marker,
- final Message msg,
- final Object[] params,
- final Throwable t) {
+ @Override
+ public Result filter(
+ final Logger logger, final Level level, final Marker marker, final Message msg, final Throwable t) {
final SimpleBindings bindings = new SimpleBindings();
bindings.put("logger", logger);
bindings.put("level", level);
bindings.put("marker", marker);
bindings.put("message", msg);
- bindings.put("parameters", params);
+ bindings.put("parameters", null);
bindings.put("throwable", t);
bindings.putAll(configuration.getProperties());
bindings.put("substitutor", configuration.getStrSubstitutor());
@@ -124,6 +106,16 @@ private Result executeScript(
return object == null || !Boolean.TRUE.equals(object) ? onMismatch : onMatch;
}
+ @Override
+ public Result filter(final LogEvent event) {
+ final SimpleBindings bindings = new SimpleBindings();
+ bindings.put("logEvent", event);
+ bindings.putAll(configuration.getProperties());
+ bindings.put("substitutor", configuration.getStrSubstitutor());
+ final Object object = configuration.getScriptManager().execute(script.getName(), bindings);
+ return object == null || !Boolean.TRUE.equals(object) ? onMismatch : onMatch;
+ }
+
@Override
public String toString() {
return script.getName();
@@ -131,10 +123,12 @@ public String toString() {
/**
* Creates the ScriptFilter.
- * @param script The script to run. The script must return a boolean value. Either script or scriptFile must be
- * provided.
- * @param match The action to take if a match occurs.
- * @param mismatch The action to take if no match occurs.
+ *
+ * @param script The script to run. The script must return a boolean
+ * value. Either script or scriptFile must be
+ * provided.
+ * @param match The action to take if a match occurs.
+ * @param mismatch The action to take if no match occurs.
* @param configuration the configuration
* @return A ScriptFilter.
*/
@@ -154,6 +148,16 @@ public static ScriptFilter createFilter(
LOGGER.error("Script support is not enabled");
return null;
}
+ if (script instanceof ScriptRef) {
+ if (configuration.getScriptManager().getScript(script.getName()) == null) {
+ logger.error("No script with name {} has been declared.", script.getName());
+ return null;
+ }
+ } else {
+ if (!configuration.getScriptManager().addScript(script)) {
+ return null;
+ }
+ }
return new ScriptFilter(script, configuration, match, mismatch);
}
From 6b072ce72d4740999a067ef6ca1ca29ce3d5f0e2 Mon Sep 17 00:00:00 2001
From: suvrat1629
Date: Thu, 30 Jan 2025 20:11:25 +0530
Subject: [PATCH 7/8] testing
---
.../appender/ScriptConfigurationTest.java | 60 +++++++++++++++++++
.../test/resources/log4j-script-ref-test.xml | 18 ++++++
2 files changed, 78 insertions(+)
create mode 100644 log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/ScriptConfigurationTest.java
create mode 100644 log4j-core-test/src/test/resources/log4j-script-ref-test.xml
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/ScriptConfigurationTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/ScriptConfigurationTest.java
new file mode 100644
index 00000000000..7e5871fa77d
--- /dev/null
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/appender/ScriptConfigurationTest.java
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.logging.log4j.core.appender;
+
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.Matchers.containsString;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
+import org.apache.logging.log4j.spi.ExtendedLogger;
+import org.apache.logging.log4j.core.script.ScriptRef; // Correct import for ScriptRef
+import org.apache.logging.log4j.core.config.Configuration; // Import for Configuration
+import org.junit.jupiter.api.Test;
+
+@LoggerContextSource("log4j-script-ref-test.xml")
+class ScriptConfigurationTest {
+
+ @Test
+ void testScriptRefConfiguration(final Configuration configuration) {
+ // Verify that the main Scripts element is initialized
+ assertNotNull(configuration.getScriptManager(), "ScriptManager should not be null");
+
+ // Verify a ScriptRef element is correctly resolved
+ ScriptRef scriptRef = (ScriptRef) configuration.getScriptManager().getScript("ExampleScriptRef");
+ assertNotNull(scriptRef, "ScriptRef should not be null");
+ assertThat(scriptRef.getLanguage(), containsString("groovy"));
+ assertThat(scriptRef.getScriptText(), containsString("return \"Hello, Log4j!\";"));
+
+ // Ensure that the script executes correctly
+ Object result = configuration.getScriptManager().execute("ExampleScriptRef", null);
+ assertNotNull(result, "Script execution result should not be null");
+ assertThat(result.toString(), containsString("Hello, Log4j!"));
+
+ // Verify that the console appender is initialized
+ final ConsoleAppender consoleAppender = (ConsoleAppender) configuration.getAppender("Console");
+ assertNotNull(consoleAppender, "Console appender should be initialized");
+
+ // Verify that the log messages are printed to the console
+ ExtendedLogger logger = configuration.getLoggerContext().getLogger(ScriptConfigurationTest.class);
+ logger.info("Test message");
+
+ // Capture console output (depending on test framework, this might need a mock or special handling)
+ // Check if the expected log message is printed in the console output
+ assertThat(consoleAppender.getLayout().toString(), containsString("Test message"));
+ }
+}
diff --git a/log4j-core-test/src/test/resources/log4j-script-ref-test.xml b/log4j-core-test/src/test/resources/log4j-script-ref-test.xml
new file mode 100644
index 00000000000..4cee029bfcb
--- /dev/null
+++ b/log4j-core-test/src/test/resources/log4j-script-ref-test.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
From cc5d66e2d32934c0f8d0e22875fea80b09b34d33 Mon Sep 17 00:00:00 2001
From: Suvrat1629 <140749446+Suvrat1629@users.noreply.github.com>
Date: Sat, 1 Feb 2025 21:30:37 +0530
Subject: [PATCH 8/8] Restored AbstractConfigurationTest.java
---
.../core/config/AbstractConfigurationTest.java | 15 +--------------
1 file changed, 1 insertion(+), 14 deletions(-)
diff --git a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/AbstractConfigurationTest.java b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/AbstractConfigurationTest.java
index 3080134524d..91d4405edf2 100644
--- a/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/AbstractConfigurationTest.java
+++ b/log4j-core-test/src/test/java/org/apache/logging/log4j/core/config/AbstractConfigurationTest.java
@@ -79,30 +79,17 @@ public void setup() {
rootLogger.getAttributes().put("level", "INFO");
loggers.getChildren().add(rootLogger);
- // Add Properties Node only if the map is not null and has entries
- if (map != null && !map.isEmpty()) {
+ if (map != null) {
final Node properties = newNode(rootNode, "Properties");
rootNode.getChildren().add(properties);
for (final Entry entry : map.entrySet()) {
- // Create Property node with "name" and "value" attributes
final Node property = newNode(properties, "Property");
property.getAttributes().put("name", entry.getKey());
property.getAttributes().put("value", entry.getValue());
properties.getChildren().add(property);
}
}
-
- // Add a Scripts Node if required (Example for flexibility in testing)
- final Node scripts = newNode(rootNode, "Scripts");
- rootNode.getChildren().add(scripts);
-
- // Add sample script node for testing purposes
- final Node script = newNode(scripts, "Script");
- script.getAttributes().put("name", "TestScript");
- script.getAttributes().put("language", "JavaScript");
- script.getAttributes().put("scriptText", "print('Hello, Log4j!');");
- scripts.getChildren().add(script);
}
private Node newNode(final Node parent, final String name) {