You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by "srikanth surukuntu (JIRA)" <ji...@apache.org> on 2016/08/11 20:44:20 UTC
[jira] [Created] (LOG4J2-1511) DynamicThresholdFilter filters
incorrectly when params are passed as individual arguments instead of
varargs
srikanth surukuntu created LOG4J2-1511:
------------------------------------------
Summary: DynamicThresholdFilter filters incorrectly when params are passed as individual arguments instead of varargs
Key: LOG4J2-1511
URL: https://issues.apache.org/jira/browse/LOG4J2-1511
Project: Log4j 2
Issue Type: Bug
Affects Versions: 2.6.2
Reporter: srikanth surukuntu
The below test should summarize the issue.
{code}
package org.apache.logging.log4j.core.filter;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.ThreadContext;
import org.apache.logging.log4j.core.Filter;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.util.KeyValuePair;
import org.apache.logging.log4j.status.StatusLogger;
import org.junit.After;
import org.junit.Test;
/**
*
*/
public class DynamicThresholdFilterTest {
@After
public void cleanup() {
final LoggerContext ctx = LoggerContext.getContext(false);
ctx.reconfigure();
StatusLogger.getLogger().reset();
}
@Test
public void testFilter() {
ThreadContext.put("userid", "testuser");
ThreadContext.put("organization", "apache");
final KeyValuePair[] pairs = new KeyValuePair[] {
new KeyValuePair("testuser", "DEBUG"),
new KeyValuePair("JohnDoe", "warn") };
final DynamicThresholdFilter filter = DynamicThresholdFilter.createFilter("userid", pairs, Level.ERROR, Filter.Result.ACCEPT, Filter.Result.NEUTRAL);
filter.start();
assertTrue(filter.isStarted());
Object [] replacements = {"one", "two", "three"};
assertSame(Filter.Result.ACCEPT, filter.filter(null, Level.DEBUG, null, "some test message", replacements)); // Works
assertSame(Filter.Result.ACCEPT, filter.filter(null, Level.DEBUG, null, "some test message", "one", "two", "three")); // Doesn't work but it should
ThreadContext.clearMap();
}
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org