You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2020/09/14 18:43:28 UTC
[qpid-broker-j] branch 7.1.x updated: QPID-8423: [Broker-J] Fix
filtering of log events produced by loggers with name exactly equals to
rule logger name
This is an automated email from the ASF dual-hosted git repository.
orudyy pushed a commit to branch 7.1.x
in repository https://gitbox.apache.org/repos/asf/qpid-broker-j.git
The following commit(s) were added to refs/heads/7.1.x by this push:
new 8ba831d QPID-8423: [Broker-J] Fix filtering of log events produced by loggers with name exactly equals to rule logger name
8ba831d is described below
commit 8ba831d870ae23bcb24890edd37dd446a63c9f32
Author: Alex Rudyy <or...@apache.org>
AuthorDate: Mon Mar 2 16:58:53 2020 +0000
QPID-8423: [Broker-J] Fix filtering of log events produced by loggers with name exactly equals to rule logger name
(cherry picked from commit c838d26d9c423319d02b64ae67b02669c3c541cf)
---
.../logging/logback/LoggerNameAndLevelFilter.java | 19 +++++++--------
.../server/logging/logback/BrokerLoggerTest.java | 27 ++++++++++++++++++++++
.../logback/LoggerNameAndLevelFilterTest.java | 2 +-
3 files changed, 38 insertions(+), 10 deletions(-)
diff --git a/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/LoggerNameAndLevelFilter.java b/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/LoggerNameAndLevelFilter.java
index a2c620a..68d05f6 100644
--- a/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/LoggerNameAndLevelFilter.java
+++ b/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/LoggerNameAndLevelFilter.java
@@ -70,7 +70,7 @@ public class LoggerNameAndLevelFilter extends Filter<ILoggingEvent> implements E
@Override
public FilterReply decide(final ILoggingEvent event)
{
- return getFilterReply(event.getLevel());
+ return getWildCardLoggerFilterReply(event.getLevel());
}
};
}
@@ -84,7 +84,7 @@ public class LoggerNameAndLevelFilter extends Filter<ILoggingEvent> implements E
{
if (event.getLoggerName().startsWith(prefixName))
{
- return getFilterReply(event.getLevel());
+ return getWildCardLoggerFilterReply(event.getLevel());
}
return FilterReply.NEUTRAL;
}
@@ -99,7 +99,7 @@ public class LoggerNameAndLevelFilter extends Filter<ILoggingEvent> implements E
{
if (event.getLoggerName().equals(loggerName))
{
- return getFilterReply(event.getLevel());
+ return getExactLoggerFilterReply(event.getLevel());
}
return FilterReply.NEUTRAL;
}
@@ -107,13 +107,9 @@ public class LoggerNameAndLevelFilter extends Filter<ILoggingEvent> implements E
}
}
- private FilterReply getFilterReply(final Level eventLevel)
+ private FilterReply getWildCardLoggerFilterReply(final Level eventLevel)
{
- if (_level == Level.OFF)
- {
- return FilterReply.DENY;
- }
- else if (eventLevel.isGreaterOrEqual(_level))
+ if (eventLevel.isGreaterOrEqual(_level))
{
return FilterReply.ACCEPT;
}
@@ -123,6 +119,11 @@ public class LoggerNameAndLevelFilter extends Filter<ILoggingEvent> implements E
}
}
+ private FilterReply getExactLoggerFilterReply(final Level eventLevel)
+ {
+ return eventLevel.isGreaterOrEqual(_level) ? FilterReply.ACCEPT : FilterReply.DENY;
+ }
+
@Override
public Level getEffectiveLevel(final Logger logger)
{
diff --git a/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/BrokerLoggerTest.java b/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/BrokerLoggerTest.java
index 57dedd9..895c312 100644
--- a/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/BrokerLoggerTest.java
+++ b/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/BrokerLoggerTest.java
@@ -271,6 +271,33 @@ public class BrokerLoggerTest extends UnitTestBase
assertLoggedEvent(_loggerAppender, true, "foo message", fooLogger.getName(), Level.WARN);
}
+ @Test
+ public void testExactLoggerRuleSupersedeWildCardLoggerRule()
+ {
+ Map<String, Object> fooRuleAttributes =
+ createBrokerNameAndLevelLogInclusionRuleAttributes("fooRule",
+ "org.apache.qpid.foo.*",
+ LogLevel.INFO);
+ Map<String, Object> barRuleAttributes =
+ createBrokerNameAndLevelLogInclusionRuleAttributes("barRule",
+ "org.apache.qpid.foo.bar",
+ LogLevel.WARN);
+
+ _brokerLogger.createChild(BrokerLogInclusionRule.class, fooRuleAttributes);
+ _brokerLogger.createChild(BrokerLogInclusionRule.class, barRuleAttributes);
+
+ Logger barLogger = LoggerFactory.getLogger("org.apache.qpid.foo.bar");
+ barLogger.info("info bar message");
+ barLogger.error("error bar message");
+
+ Logger fooLogger = LoggerFactory.getLogger("org.apache.qpid.foo.foo");
+ fooLogger.info("info foo message");
+
+ assertLoggedEvent(_loggerAppender, false, "info bar message", barLogger.getName(), Level.INFO);
+ assertLoggedEvent(_loggerAppender, true, "error bar message", barLogger.getName(), Level.ERROR);
+ assertLoggedEvent(_loggerAppender, true, "info foo message", fooLogger.getName(), Level.INFO);
+ }
+
private Map<String, Object> createBrokerNameAndLevelLogInclusionRuleAttributes(final String loggerName,
final LogLevel logLevel)
{
diff --git a/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/LoggerNameAndLevelFilterTest.java b/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/LoggerNameAndLevelFilterTest.java
index fb6ceab..1e02735 100644
--- a/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/LoggerNameAndLevelFilterTest.java
+++ b/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/LoggerNameAndLevelFilterTest.java
@@ -142,7 +142,7 @@ public class LoggerNameAndLevelFilterTest extends UnitTestBase
when(event.getLevel()).thenReturn(Level.DEBUG);
when(event.getLoggerName()).thenReturn("org.apache.qpid");
assertEquals("Unexpected reply for non matching log leve and same logger namel",
- FilterReply.NEUTRAL,
+ FilterReply.DENY,
filter.decide(event));
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org