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 2018/11/30 15:49:31 UTC

[3/3] qpid-broker-j git commit: QPID-8232: [Broker-J] Support ability to turn off logger

QPID-8232: [Broker-J] Support ability to turn off logger

(cherry picked from commit 367b0805cba347a362a143da4948704f6d263118)


Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/2eb9c74e
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/2eb9c74e
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/2eb9c74e

Branch: refs/heads/7.0.x
Commit: 2eb9c74e02a737d177da540029423e65397f2764
Parents: 55b3dea
Author: Alex Rudyy <or...@apache.org>
Authored: Sun Sep 9 22:47:36 2018 +0100
Committer: Alex Rudyy <or...@apache.org>
Committed: Fri Nov 30 15:10:26 2018 +0000

----------------------------------------------------------------------
 .../server/logging/logback/CompositeFilter.java |  9 ++++--
 .../logback/LoggerNameAndLevelFilter.java       | 30 +++++++++++++++--
 .../logging/logback/BrokerLoggerTest.java       | 34 +++++++++++++++++++-
 .../logging/logback/CompositeFilterTest.java    |  8 ++---
 .../logback/LoggerNameAndLevelFilterTest.java   | 17 ++++++++++
 5 files changed, 88 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/2eb9c74e/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/CompositeFilter.java
----------------------------------------------------------------------
diff --git a/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/CompositeFilter.java b/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/CompositeFilter.java
index 752c80d..8438876 100644
--- a/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/CompositeFilter.java
+++ b/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/CompositeFilter.java
@@ -67,11 +67,16 @@ public class CompositeFilter extends Filter<ILoggingEvent>
         FilterReply reply = DENY;
         for(Filter<ILoggingEvent> filter : _filterList)
         {
-            reply = filter.decide(event);
-            if (reply == DENY || reply == ACCEPT)
+            FilterReply filterReply = filter.decide(event);
+            if (filterReply == DENY)
             {
+                reply = filterReply;
                 break;
             }
+            if (filterReply == ACCEPT)
+            {
+                reply = filterReply;
+            }
         }
         if(reply == ACCEPT)
         {

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/2eb9c74e/broker-plugins/logging-logback/src/main/java/org/apache/qpid/server/logging/logback/LoggerNameAndLevelFilter.java
----------------------------------------------------------------------
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 825a01d..a2c620a 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 event.getLevel().isGreaterOrEqual(_level) ? FilterReply.ACCEPT : FilterReply.NEUTRAL;
+                    return getFilterReply(event.getLevel());
                 }
             };
         }
@@ -82,7 +82,11 @@ public class LoggerNameAndLevelFilter extends Filter<ILoggingEvent> implements E
                 @Override
                 public FilterReply decide(final ILoggingEvent event)
                 {
-                    return event.getLevel().isGreaterOrEqual(_level) && event.getLoggerName().startsWith(prefixName) ? FilterReply.ACCEPT : FilterReply.NEUTRAL;
+                    if (event.getLoggerName().startsWith(prefixName))
+                    {
+                        return getFilterReply(event.getLevel());
+                    }
+                    return FilterReply.NEUTRAL;
                 }
             };
         }
@@ -93,12 +97,32 @@ public class LoggerNameAndLevelFilter extends Filter<ILoggingEvent> implements E
                 @Override
                 public FilterReply decide(final ILoggingEvent event)
                 {
-                    return event.getLevel().isGreaterOrEqual(_level) && event.getLoggerName().equals(loggerName) ? FilterReply.ACCEPT : FilterReply.NEUTRAL;
+                    if (event.getLoggerName().equals(loggerName))
+                    {
+                        return getFilterReply(event.getLevel());
+                    }
+                    return FilterReply.NEUTRAL;
                 }
             };
         }
     }
 
+    private FilterReply getFilterReply(final Level eventLevel)
+    {
+        if (_level == Level.OFF)
+        {
+            return FilterReply.DENY;
+        }
+        else if (eventLevel.isGreaterOrEqual(_level))
+        {
+            return FilterReply.ACCEPT;
+        }
+        else
+        {
+            return FilterReply.NEUTRAL;
+        }
+    }
+
     @Override
     public Level getEffectiveLevel(final Logger logger)
     {

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/2eb9c74e/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/BrokerLoggerTest.java
----------------------------------------------------------------------
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 0678f2e..c20b4b5 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
@@ -232,13 +232,45 @@ public class BrokerLoggerTest extends QpidTestCase
         errorFilter.delete();
     }
 
+    public void testTurningLoggingOff()
+    {
+        Map<String, Object> fooRuleAttributes =
+                createBrokerNameAndLevelLogInclusionRuleAttributes("fooRule",
+                                                                   "org.apache.qpid.foo.*",
+                                                                   LogLevel.INFO);
+        Map<String, Object> barRuleAttributes =
+                createBrokerNameAndLevelLogInclusionRuleAttributes("barRule",
+                                                                   "org.apache.qpid.foo.bar",
+                                                                   LogLevel.OFF);
+
+        _brokerLogger.createChild(BrokerLogInclusionRule.class, fooRuleAttributes);
+        _brokerLogger.createChild(BrokerLogInclusionRule.class, barRuleAttributes);
+
+        Logger barLogger = LoggerFactory.getLogger("org.apache.qpid.foo.bar");
+        barLogger.warn("bar message");
+
+        Logger fooLogger = LoggerFactory.getLogger("org.apache.qpid.foo.foo");
+        fooLogger.warn("foo message");
+
+        assertLoggedEvent(_loggerAppender, false, "bar message", barLogger.getName(), Level.WARN);
+        assertLoggedEvent(_loggerAppender, false, "bar message", fooLogger.getName(), Level.WARN);
+        assertLoggedEvent(_loggerAppender, true, "foo message", fooLogger.getName(), Level.WARN);
+    }
+
     private Map<String, Object> createBrokerNameAndLevelLogInclusionRuleAttributes(final String loggerName,
                                                                                    final LogLevel logLevel)
     {
+        return createBrokerNameAndLevelLogInclusionRuleAttributes("test", loggerName, logLevel);
+    }
+
+    private Map<String, Object> createBrokerNameAndLevelLogInclusionRuleAttributes(final String ruleName,
+                                                                                   final String loggerName,
+                                                                                   final LogLevel logLevel)
+    {
         Map<String, Object> attributes = new HashMap<>();
         attributes.put(BrokerNameAndLevelLogInclusionRule.LOGGER_NAME, loggerName);
         attributes.put(BrokerNameAndLevelLogInclusionRule.LEVEL, logLevel);
-        attributes.put(BrokerNameAndLevelLogInclusionRule.NAME, "test");
+        attributes.put(BrokerNameAndLevelLogInclusionRule.NAME, ruleName);
         attributes.put(ConfiguredObject.TYPE, BrokerNameAndLevelLogInclusionRule.TYPE);
         return attributes;
     }

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/2eb9c74e/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/CompositeFilterTest.java
----------------------------------------------------------------------
diff --git a/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/CompositeFilterTest.java b/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/CompositeFilterTest.java
index 751c0d9..6082b04 100644
--- a/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/CompositeFilterTest.java
+++ b/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/CompositeFilterTest.java
@@ -75,18 +75,18 @@ public class CompositeFilterTest extends QpidTestCase
         LogBackLogInclusionRule neutral = createRule(FilterReply.NEUTRAL);
         compositeFilter.addLogInclusionRule(neutral);
 
-        LogBackLogInclusionRule deny = createRule(FilterReply.DENY);
-        compositeFilter.addLogInclusionRule(deny);
-
         LogBackLogInclusionRule accept = createRule(FilterReply.ACCEPT);
         compositeFilter.addLogInclusionRule(accept);
 
+        LogBackLogInclusionRule deny = createRule(FilterReply.DENY);
+        compositeFilter.addLogInclusionRule(deny);
+
         FilterReply reply = compositeFilter.decide(mock(ILoggingEvent.class));
         assertEquals("Unexpected reply", FilterReply.DENY, reply);
 
         verify(neutral.asFilter()).decide(any(ILoggingEvent.class));
         verify(deny.asFilter()).decide(any(ILoggingEvent.class));
-        verify(accept.asFilter(), never()).decide(any(ILoggingEvent.class));
+        verify(accept.asFilter()).decide(any(ILoggingEvent.class));
     }
 
     public void testRemoveLogInclusionRule()

http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/2eb9c74e/broker-plugins/logging-logback/src/test/java/org/apache/qpid/server/logging/logback/LoggerNameAndLevelFilterTest.java
----------------------------------------------------------------------
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 63d5cd1..693f383 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
@@ -115,4 +115,21 @@ public class LoggerNameAndLevelFilterTest extends QpidTestCase
         when(event.getLoggerName()).thenReturn("org.apache.qpid");
         assertEquals("Unexpected reply for non matching log leve and same logger namel", FilterReply.NEUTRAL, filter.decide(event));
     }
+
+    public void testDecideForTurnedOffLogger() throws Exception
+    {
+        LoggerNameAndLevelFilter filter = new LoggerNameAndLevelFilter("org.apache.qpid", Level.OFF);
+
+        ILoggingEvent event = mock(ILoggingEvent.class);
+        when(event.getLevel()).thenReturn(Level.WARN);
+        when(event.getLoggerName()).thenReturn("org.apache.qpid");
+        assertEquals("Unexpected reply for matching log level and same logger name",
+                     FilterReply.DENY,
+                     filter.decide(event));
+
+        when(event.getLoggerName()).thenReturn("org.apache.qpid.foo");
+        assertEquals("Unexpected reply for matching log level and not same logger name",
+                     FilterReply.NEUTRAL,
+                     filter.decide(event));
+    }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org