You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2015/07/07 12:51:27 UTC

svn commit: r1689629 - in /qpid/java/trunk/broker-core/src: main/java/org/apache/qpid/server/logging/ test/java/org/apache/qpid/server/logging/

Author: rgodfrey
Date: Tue Jul  7 10:51:26 2015
New Revision: 1689629

URL: http://svn.apache.org/r1689629
Log:
QPID-6622 : [Java Broker] rework the logger statistics to come from the CompositeFilter and not by extending the Appender

Modified:
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractBrokerLogger.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractLogger.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractVirtualHostLogger.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerConsoleLoggerImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerFileLoggerImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerLogbackSocketLoggerImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerMemoryLoggerImpl.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/CompositeFilter.java
    qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostFileLoggerImpl.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/BrokerLoggerTest.java
    qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/CompositeFilterTest.java

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractBrokerLogger.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractBrokerLogger.java?rev=1689629&r1=1689628&r2=1689629&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractBrokerLogger.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractBrokerLogger.java Tue Jul  7 10:51:26 2015
@@ -32,13 +32,17 @@ public abstract class AbstractBrokerLogg
 {
     @ManagedAttributeField
     private boolean _virtualHostLogEventExcluded;
-    private final CompositeFilter _compositeFilter;
 
     protected AbstractBrokerLogger(Map<String, Object> attributes, Broker<?> broker)
     {
         super(attributes, broker);
-        _compositeFilter = new CompositeFilter();
-        _compositeFilter.addFilter(new VirtualHostLogEventExcludingFilter(this));
+    }
+
+    @Override
+    protected void onResolve()
+    {
+        super.onResolve();
+        addFilter(new VirtualHostLogEventExcludingFilter(this));
     }
 
     @Override
@@ -53,9 +57,5 @@ public abstract class AbstractBrokerLogg
         return _virtualHostLogEventExcluded;
     }
 
-    @Override
-    protected CompositeFilter getCompositeFilter()
-    {
-        return _compositeFilter;
-    }
+
 }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractLogger.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractLogger.java?rev=1689629&r1=1689628&r2=1689629&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractLogger.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractLogger.java Tue Jul  7 10:51:26 2015
@@ -22,7 +22,6 @@ package org.apache.qpid.server.logging;
 
 import java.util.Collection;
 import java.util.Map;
-import java.util.concurrent.atomic.AtomicLong;
 
 import ch.qos.logback.classic.LoggerContext;
 import ch.qos.logback.classic.spi.ILoggingEvent;
@@ -44,8 +43,7 @@ public abstract class AbstractLogger<X e
 {
     private final static ch.qos.logback.classic.Logger ROOT_LOGGER = ((ch.qos.logback.classic.Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME));
 
-    private final AtomicLong _errorCount = new AtomicLong();
-    private final AtomicLong _warnCount = new AtomicLong();
+    private final CompositeFilter _compositeFilter = new CompositeFilter();
 
     protected AbstractLogger(Map<String, Object> attributes, ConfiguredObject<?> parent)
     {
@@ -53,7 +51,15 @@ public abstract class AbstractLogger<X e
         addChangeListener(new FilterListener());
     }
 
-    protected abstract CompositeFilter getCompositeFilter();
+    protected final void addFilter(LoggerFilter filter)
+    {
+        _compositeFilter.addFilter(filter);
+    }
+
+    protected final void removeFilter(LoggerFilter filter)
+    {
+        _compositeFilter.removeFilter(filter);
+    }
 
     @Override
     protected void postResolveChildren()
@@ -68,9 +74,9 @@ public abstract class AbstractLogger<X e
 
         for(LoggerFilter filter : getLoggerFilters())
         {
-            getCompositeFilter().addFilter(filter);
+            _compositeFilter.addFilter(filter);
         }
-        appender.addFilter(getCompositeFilter());
+        appender.addFilter(_compositeFilter);
 
         ROOT_LOGGER.addAppender(appender);
         appender.start();
@@ -120,22 +126,12 @@ public abstract class AbstractLogger<X e
 
     public final long getErrorCount()
     {
-        return _errorCount.get();
+        return _compositeFilter.getErrorCount();
     }
 
     public final long getWarnCount()
     {
-        return _warnCount.get();
-    }
-
-    protected final void incrementErrorCount()
-    {
-        _errorCount.incrementAndGet();
-    }
-
-    protected final void incrementWarnCount()
-    {
-        _warnCount.incrementAndGet();
+        return _compositeFilter.getWarnCount();
     }
 
     public void stopLogging()
@@ -156,7 +152,7 @@ public abstract class AbstractLogger<X e
         {
             if (child instanceof LoggerFilter)
             {
-                getCompositeFilter().addFilter((LoggerFilter) child);
+                addFilter((LoggerFilter) child);
             }
         }
 
@@ -165,7 +161,7 @@ public abstract class AbstractLogger<X e
         {
             if (child instanceof LoggerFilter)
             {
-                getCompositeFilter().removeFilter((LoggerFilter) child);
+                removeFilter((LoggerFilter) child);
             }
         }
 

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractVirtualHostLogger.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractVirtualHostLogger.java?rev=1689629&r1=1689628&r2=1689629&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractVirtualHostLogger.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/AbstractVirtualHostLogger.java Tue Jul  7 10:51:26 2015
@@ -29,24 +29,26 @@ import org.apache.qpid.server.model.Virt
 
 public abstract class AbstractVirtualHostLogger <X extends AbstractVirtualHostLogger<X>> extends AbstractLogger<X> implements VirtualHostLogger<X>
 {
-    private final CompositeFilter _compositeFilter;
+
+    private final VirtualHost<?, ?, ?> _virtualHost;
 
     protected AbstractVirtualHostLogger(Map<String, Object> attributes, VirtualHost<?,?,?> virtualHost)
     {
         super(attributes, virtualHost);
-        _compositeFilter = new CompositeFilter();
-        _compositeFilter.addFilter(new PrincipalLogEventFilter(virtualHost.getPrincipal()));
+        _virtualHost = virtualHost;
     }
 
     @Override
-    protected Collection<? extends LoggerFilter> getLoggerFilters()
+    protected void onResolve()
     {
-        return getChildren(VirtualHostLoggerFilter.class);
+        super.onResolve();
+        addFilter(new PrincipalLogEventFilter(_virtualHost.getPrincipal()));
     }
 
     @Override
-    protected CompositeFilter getCompositeFilter()
+    protected Collection<? extends LoggerFilter> getLoggerFilters()
     {
-        return _compositeFilter;
+        return getChildren(VirtualHostLoggerFilter.class);
     }
+
 }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerConsoleLoggerImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerConsoleLoggerImpl.java?rev=1689629&r1=1689628&r2=1689629&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerConsoleLoggerImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerConsoleLoggerImpl.java Tue Jul  7 10:51:26 2015
@@ -53,22 +53,7 @@ public class BrokerConsoleLoggerImpl ext
     @Override
     protected Appender<ILoggingEvent> createAppenderInstance(Context context)
     {
-        ConsoleAppender<ILoggingEvent> consoleAppender = new ConsoleAppender<ILoggingEvent>()
-                                                            {
-                                                                @Override
-                                                                protected void append(final ILoggingEvent eventObject)
-                                                                {
-                                                                    super.append(eventObject);
-                                                                    switch(eventObject.getLevel().toInt())
-                                                                    {
-                                                                        case Level.ERROR_INT:
-                                                                            incrementErrorCount();
-                                                                            break;
-                                                                        case Level.WARN_INT:
-                                                                            incrementWarnCount();
-                                                                    }
-                                                                }
-                                                            };
+        ConsoleAppender<ILoggingEvent> consoleAppender = new ConsoleAppender<>();
 
         final PatternLayoutEncoder encoder = new PatternLayoutEncoder();
         encoder.setPattern(getLayout());

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerFileLoggerImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerFileLoggerImpl.java?rev=1689629&r1=1689628&r2=1689629&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerFileLoggerImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerFileLoggerImpl.java Tue Jul  7 10:51:26 2015
@@ -180,22 +180,7 @@ public class BrokerFileLoggerImpl extend
     @Override
     protected Appender<ILoggingEvent> createAppenderInstance(Context loggerContext)
     {
-        final RollingFileAppender<ILoggingEvent> appender = new RollingFileAppender<ILoggingEvent>()
-                                                            {
-                                                                @Override
-                                                                protected void append(final ILoggingEvent eventObject)
-                                                                {
-                                                                    super.append(eventObject);
-                                                                    switch(eventObject.getLevel().toInt())
-                                                                    {
-                                                                        case Level.ERROR_INT:
-                                                                            incrementErrorCount();
-                                                                            break;
-                                                                        case Level.WARN_INT:
-                                                                            incrementWarnCount();
-                                                                    }
-                                                                }
-                                                            };
+        final RollingFileAppender<ILoggingEvent> appender = new RollingFileAppender<>();
         AppenderUtils.configureRollingFileAppender(this, loggerContext, appender);
         return appender;
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerLogbackSocketLoggerImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerLogbackSocketLoggerImpl.java?rev=1689629&r1=1689628&r2=1689629&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerLogbackSocketLoggerImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerLogbackSocketLoggerImpl.java Tue Jul  7 10:51:26 2015
@@ -98,14 +98,6 @@ public class BrokerLogbackSocketLoggerIm
                                             {
                                                 augmentWithMDC(event);
                                                 super.append(event);
-                                                switch(event.getLevel().toInt())
-                                                {
-                                                    case Level.ERROR_INT:
-                                                        incrementErrorCount();
-                                                        break;
-                                                    case Level.WARN_INT:
-                                                        incrementWarnCount();
-                                                }
                                             }
                                         };
         socketAppender.setPort(_port);

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerMemoryLoggerImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerMemoryLoggerImpl.java?rev=1689629&r1=1689628&r2=1689629&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerMemoryLoggerImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/BrokerMemoryLoggerImpl.java Tue Jul  7 10:51:26 2015
@@ -60,22 +60,7 @@ public class BrokerMemoryLoggerImpl exte
         {
             throw new IllegalStateException("RecordEventAppender is already created");
         }
-        RecordEventAppender appender =  new RecordEventAppender(getMaxRecords())
-                                        {
-                                            @Override
-                                            protected void append(final ILoggingEvent eventObject)
-                                            {
-                                                super.append(eventObject);
-                                                switch(eventObject.getLevel().toInt())
-                                                {
-                                                    case Level.ERROR_INT:
-                                                        incrementErrorCount();
-                                                        break;
-                                                    case Level.WARN_INT:
-                                                        incrementWarnCount();
-                                                }
-                                            }
-                                        };
+        RecordEventAppender appender =  new RecordEventAppender(getMaxRecords());
         _logRecorder = new LogRecorder(appender);
         return appender;
     }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/CompositeFilter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/CompositeFilter.java?rev=1689629&r1=1689628&r2=1689629&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/CompositeFilter.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/CompositeFilter.java Tue Jul  7 10:51:26 2015
@@ -20,10 +20,17 @@
  */
 package org.apache.qpid.server.logging;
 
+import static ch.qos.logback.classic.Level.ERROR_INT;
+import static ch.qos.logback.classic.Level.WARN_INT;
+import static ch.qos.logback.core.spi.FilterReply.ACCEPT;
+import static ch.qos.logback.core.spi.FilterReply.DENY;
+
 import java.util.Iterator;
 import java.util.List;
 import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.atomic.AtomicLong;
 
+import ch.qos.logback.classic.Level;
 import ch.qos.logback.classic.spi.ILoggingEvent;
 import ch.qos.logback.core.filter.Filter;
 import ch.qos.logback.core.spi.FilterReply;
@@ -31,10 +38,12 @@ import ch.qos.logback.core.spi.FilterRep
 public class CompositeFilter extends Filter<ILoggingEvent>
 {
     private List<Filter<ILoggingEvent>> _filterList = new CopyOnWriteArrayList<>();
+    private final AtomicLong _warnCount = new AtomicLong();
+    private final AtomicLong _errorCount = new AtomicLong();
 
     public void addFilter(LoggerFilter filter)
     {
-        Filter f = filter.asFilter();
+        Filter<ILoggingEvent> f = filter.asFilter();
         f.setName(filter.getName());
         _filterList.add(f);
     }
@@ -56,14 +65,40 @@ public class CompositeFilter extends Fil
     @Override
     public FilterReply decide(ILoggingEvent event)
     {
-        for(Filter filter : _filterList)
+        FilterReply reply = DENY;
+        for(Filter<ILoggingEvent> filter : _filterList)
+        {
+            reply = filter.decide(event);
+            if (reply == DENY || reply == ACCEPT)
+            {
+                break;
+            }
+        }
+        if(reply == ACCEPT)
         {
-            FilterReply reply = filter.decide(event);
-            if (reply == FilterReply.DENY || reply == FilterReply.ACCEPT)
+            switch(event.getLevel().toInt())
             {
-                return reply;
+                case WARN_INT:
+                    _warnCount.incrementAndGet();
+                    break;
+                case ERROR_INT:
+                    _errorCount.incrementAndGet();
+                    break;
+                default:
+                    // do nothing
             }
+            return ACCEPT;
         }
-        return FilterReply.DENY;
+        return DENY;
+    }
+
+    public long getErrorCount()
+    {
+        return _errorCount.get();
+    }
+
+    public long getWarnCount()
+    {
+        return _warnCount.get();
     }
 }

Modified: qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostFileLoggerImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostFileLoggerImpl.java?rev=1689629&r1=1689628&r2=1689629&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostFileLoggerImpl.java (original)
+++ qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/logging/VirtualHostFileLoggerImpl.java Tue Jul  7 10:51:26 2015
@@ -183,24 +183,8 @@ public class VirtualHostFileLoggerImpl e
     @Override
     protected Appender<ILoggingEvent> createAppenderInstance(Context loggerContext)
     {
-        final RollingFileAppender<ILoggingEvent> appender = new RollingFileAppender<ILoggingEvent>()
-        {
-            @Override
-            protected void append(final ILoggingEvent eventObject)
-            {
-                super.append(eventObject);
-                switch(eventObject.getLevel().toInt())
-                {
-                    case Level.ERROR_INT:
-                        incrementErrorCount();
-                        break;
-                    case Level.WARN_INT:
-                        incrementWarnCount();
-                }
-            }
-        };
-        AppenderUtils.configureRollingFileAppender(this, loggerContext,
-                                                   appender);
+        final RollingFileAppender<ILoggingEvent> appender = new RollingFileAppender<>();
+        AppenderUtils.configureRollingFileAppender(this, loggerContext, appender);
         return appender;
     }
 

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/BrokerLoggerTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/BrokerLoggerTest.java?rev=1689629&r1=1689628&r2=1689629&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/BrokerLoggerTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/BrokerLoggerTest.java Tue Jul  7 10:51:26 2015
@@ -65,6 +65,10 @@ public class BrokerLoggerTest extends Qp
         _taskExecutor = new TaskExecutorImpl();
         _taskExecutor.start();
 
+        _loggerAppender = new ListAppender<>();
+        _loggerAppender.setName(APPENDER_NAME);
+
+
         Model model = BrokerModel.getInstance();
 
         SecurityManager securityManager = mock(SecurityManager.class);
@@ -83,24 +87,6 @@ public class BrokerLoggerTest extends Qp
             @Override
             public Appender<ILoggingEvent> createAppenderInstance(Context context)
             {
-                _loggerAppender = new ListAppender<ILoggingEvent>()
-                {
-                    @Override
-                    protected void append(final ILoggingEvent eventObject)
-                    {
-                        super.append(eventObject);
-                        switch(eventObject.getLevel().toInt())
-                        {
-                            case Level.ERROR_INT:
-                                incrementErrorCount();
-                                break;
-                            case Level.WARN_INT:
-                                incrementWarnCount();
-                        }
-                    }
-                };
-                _loggerAppender.setName(APPENDER_NAME);
-
                 return _loggerAppender;
             }
         };

Modified: qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/CompositeFilterTest.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/CompositeFilterTest.java?rev=1689629&r1=1689628&r2=1689629&view=diff
==============================================================================
--- qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/CompositeFilterTest.java (original)
+++ qpid/java/trunk/broker-core/src/test/java/org/apache/qpid/server/logging/CompositeFilterTest.java Tue Jul  7 10:51:26 2015
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import ch.qos.logback.classic.Level;
 import ch.qos.logback.classic.spi.ILoggingEvent;
 import ch.qos.logback.core.filter.Filter;
 import ch.qos.logback.core.spi.FilterReply;
@@ -47,7 +48,9 @@ public class CompositeFilterTest extends
 
         compositeFilter.addFilter(createFilter(FilterReply.ACCEPT));
 
-        FilterReply reply = compositeFilter.decide(mock(ILoggingEvent.class));
+        final ILoggingEvent loggingEvent = mock(ILoggingEvent.class);
+        when(loggingEvent.getLevel()).thenReturn(Level.ERROR);
+        FilterReply reply = compositeFilter.decide(loggingEvent);
         assertEquals("Unexpected reply with ACCEPT filter added", FilterReply.ACCEPT, reply);
     }
 
@@ -57,7 +60,9 @@ public class CompositeFilterTest extends
 
         compositeFilter.addFilter(createFilter(FilterReply.NEUTRAL));
 
-        FilterReply reply = compositeFilter.decide(mock(ILoggingEvent.class));
+        final ILoggingEvent loggingEvent = mock(ILoggingEvent.class);
+        when(loggingEvent.getLevel()).thenReturn(Level.ERROR);
+        FilterReply reply = compositeFilter.decide(loggingEvent);
         assertEquals("Unexpected reply with NEUTRAL filter added", FilterReply.DENY, reply);
     }
 
@@ -100,7 +105,9 @@ public class CompositeFilterTest extends
 
         compositeFilter.removeFilter(brokerFilterDeny);
 
-        FilterReply reply2 = compositeFilter.decide(mock(ILoggingEvent.class));
+        final ILoggingEvent loggingEvent = mock(ILoggingEvent.class);
+        when(loggingEvent.getLevel()).thenReturn(Level.ERROR);
+        FilterReply reply2 = compositeFilter.decide(loggingEvent);
         assertEquals("Unexpected reply", FilterReply.ACCEPT, reply2);
 
         verify(brokerFilterNeutral.asFilter(), times(2)).decide(any(ILoggingEvent.class));



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