Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions log4j-core-test/src/test/resources/log4j-rolling.properties
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -131,6 +131,7 @@ public PropertiesConfiguration build() {
final String name = filterName.trim();
builder.add(createFilter(name, PropertiesUtil.extractSubset(rootProperties, "filter." + name)));
}
removeDefinedButUnusedProperties("filter");
} else {

final Map<String, Properties> filters =
Expand All @@ -148,6 +149,7 @@ public PropertiesConfiguration build() {
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));
Expand All @@ -165,6 +167,7 @@ public PropertiesConfiguration build() {
builder.add(createLogger(name, PropertiesUtil.extractSubset(rootProperties, "logger." + name)));
}
}
removeDefinedButUnusedProperties("logger");
} else {

final Map<String, Properties> loggers = PropertiesUtil.partitionOnCommonPrefixes(
Expand Down Expand Up @@ -194,6 +197,10 @@ public PropertiesConfiguration build() {
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) {
Expand Down
13 changes: 13 additions & 0 deletions src/changelog/.2.x.x/prevent_configexception_non_used_config.xml
Original file line number Diff line number Diff line change
@@ -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>