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