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
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package org.apache.logging.log4j.core.config.properties;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;

import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.LifeCycle;
import org.apache.logging.log4j.core.test.junit.LoggerContextSource;
import org.junit.jupiter.api.Test;

class MarkerFilterPropertiesCaseTest {

@Test
@LoggerContextSource("log4j2-properties-markerfilter-miscase.properties")
void testMarkerFilterPropertyCase(final Configuration config) {
assertNotNull(config);
assertEquals(LifeCycle.State.STARTED, config.getState(), "Configuration did not start");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
status = ERROR
dest = err

appender.Stdout.type = Console
appender.Stdout.name = StdOut
appender.Stdout.target = SYSTEM_OUT
appender.Stdout.layout.type = PatternLayout
appender.Stdout.layout.pattern = %d [%t] %-5level: %msg%n%throwable

appender.Stdout.filter.marker.type = MarkerFilter
appender.Stdout.filter.marker.onMatch = DENY
appender.Stdout.filter.marker.onMisMatch = NEUTRAL
appender.Stdout.filter.marker.marker = FLOW

rootLogger.appenderRef.console.ref = StdOut
rootLogger.level = ERROR
Original file line number Diff line number Diff line change
Expand Up @@ -257,8 +257,8 @@ private FilterComponentBuilder createFilter(final String key, final Properties p
if (Strings.isEmpty(type)) {
throw new ConfigurationException("No type attribute provided for Filter " + key);
}
final String onMatch = (String) properties.remove(AbstractFilterBuilder.ATTR_ON_MATCH);
final String onMismatch = (String) properties.remove(AbstractFilterBuilder.ATTR_ON_MISMATCH);
final String onMatch = removeIgnoreCase(properties, AbstractFilterBuilder.ATTR_ON_MATCH);
final String onMismatch = removeIgnoreCase(properties, AbstractFilterBuilder.ATTR_ON_MISMATCH);
final FilterComponentBuilder filterBuilder = builder.newFilter(type, onMatch, onMismatch);
return processRemainingProperties(filterBuilder, properties);
}
Expand Down Expand Up @@ -418,4 +418,15 @@ public PropertiesConfigurationBuilder setLoggerContext(final LoggerContext logge
public LoggerContext getLoggerContext() {
return loggerContext;
}

private static String removeIgnoreCase(final Properties properties, final String key) {
for (final String k : properties.stringPropertyNames()) {
if (k.equalsIgnoreCase(key)) {
final String value = properties.getProperty(k);
properties.remove(k);
return value;
}
}
return null;
}
}