This is an automated email from the ASF dual-hosted git repository.
vy pushed a commit to branch 2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/2.x by this push:
new c889dcbb3e Discard defined but unused loggers, appenders and filters
(#4069)
c889dcbb3e is described below
commit c889dcbb3ea5044c4d78f4ffae2ba9559105a0d0
Author: Michael Morris <[email protected]>
AuthorDate: Sun Mar 29 21:11:24 2026 +0100
Discard defined but unused loggers, appenders and filters (#4069)
---
log4j-core-test/src/test/resources/log4j-rolling.properties | 5 +++++
.../config/properties/PropertiesConfigurationBuilder.java | 7 +++++++
.../.2.x.x/prevent_configexception_non_used_config.xml | 13 +++++++++++++
3 files changed, 25 insertions(+)
diff --git a/log4j-core-test/src/test/resources/log4j-rolling.properties
b/log4j-core-test/src/test/resources/log4j-rolling.properties
index 04ec5bb9f3..c3aae02bf7 100644
--- a/log4j-core-test/src/test/resources/log4j-rolling.properties
+++ b/log4j-core-test/src/test/resources/log4j-rolling.properties
@@ -51,6 +51,11 @@ appender.my.list.filters = threshold
appender.my.list.filter.threshold.type = ThresholdFilter
appender.my.list.filter.threshold.level = error
+appender.unused.type = RollingFile
+appender.unused.name = UnusedRollingFile
+appender.unused.fileName = ${filename}.unused
+appender.unused.filePattern =
target/rolling2/test1-%d{MM-dd-yy-HH-mm-ss}-unused-%i.log.gz
+
loggers = rolling.file
logger.rolling.file.name = org.apache.logging.log4j.core.appender.rolling
diff --git
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
index e4770a80ab..4903e8bcb5 100644
---
a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
+++
b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/properties/PropertiesConfigurationBuilder.java
@@ -131,6 +131,7 @@ public class PropertiesConfigurationBuilder extends
ConfigurationBuilderFactory
final String name = filterName.trim();
builder.add(createFilter(name,
PropertiesUtil.extractSubset(rootProperties, "filter." + name)));
}
+ removeDefinedButUnusedProperties("filter");
} else {
final Map<String, Properties> filters =
@@ -148,6 +149,7 @@ public class PropertiesConfigurationBuilder extends
ConfigurationBuilderFactory
builder.add(createAppender(
appenderName.trim(),
PropertiesUtil.extractSubset(rootProperties, "appender." + name)));
}
+ removeDefinedButUnusedProperties(Appender.ELEMENT_TYPE);
} else {
final Map<String, Properties> appenders =
PropertiesUtil.partitionOnCommonPrefixes(
PropertiesUtil.extractSubset(rootProperties,
Appender.ELEMENT_TYPE));
@@ -165,6 +167,7 @@ public class PropertiesConfigurationBuilder extends
ConfigurationBuilderFactory
builder.add(createLogger(name,
PropertiesUtil.extractSubset(rootProperties, "logger." + name)));
}
}
+ removeDefinedButUnusedProperties("logger");
} else {
final Map<String, Properties> loggers =
PropertiesUtil.partitionOnCommonPrefixes(
@@ -194,6 +197,10 @@ public class PropertiesConfigurationBuilder extends
ConfigurationBuilderFactory
return builder.build(false);
}
+ private void removeDefinedButUnusedProperties(final String prefix) {
+ PropertiesUtil.extractSubset(rootProperties, prefix);
+ }
+
private void processRemainingProperties(
final ConfigurationBuilder<PropertiesConfiguration> builder, final
Properties properties) {
while (properties.size() > 0) {
diff --git a/src/changelog/.2.x.x/prevent_configexception_non_used_config.xml
b/src/changelog/.2.x.x/prevent_configexception_non_used_config.xml
new file mode 100644
index 0000000000..b489fa0e24
--- /dev/null
+++ b/src/changelog/.2.x.x/prevent_configexception_non_used_config.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<entry xmlns="https://logging.apache.org/xml/ns"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ https://logging.apache.org/xml/ns
+ https://logging.apache.org/xml/ns/log4j-changelog-0.xsd"
+ type="added">
+ <issue id="4036"
link="https://github.com/apache/logging-log4j2/issues/4036"/>
+ <issue id="4069"
link="https://github.com/apache/logging-log4j2/pull/4069"/>
+ <description format="asciidoc">
+ Disregarded defined logger, appender and filter properties not
referenced in loggers, appenders and filters respectively
+ </description>
+</entry>