You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2017/06/16 16:07:52 UTC
karaf-decanter git commit: [KARAF-5192] Expose ignored categories by
the decanter log collector to user and filter the appender logger categories
Repository: karaf-decanter
Updated Branches:
refs/heads/master 2f031fb54 -> 152f602d2
[KARAF-5192] Expose ignored categories by the decanter log collector to user and filter the appender logger categories
Project: http://git-wip-us.apache.org/repos/asf/karaf-decanter/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf-decanter/commit/152f602d
Tree: http://git-wip-us.apache.org/repos/asf/karaf-decanter/tree/152f602d
Diff: http://git-wip-us.apache.org/repos/asf/karaf-decanter/diff/152f602d
Branch: refs/heads/master
Commit: 152f602d2487818694d55e0792ed79b9f2d5dd2a
Parents: 2f031fb
Author: Jean-Baptiste Onofré <jb...@apache.org>
Authored: Fri Jun 16 18:07:03 2017 +0200
Committer: Jean-Baptiste Onofré <jb...@apache.org>
Committed: Fri Jun 16 18:07:03 2017 +0200
----------------------------------------------------------------------
assembly/src/main/feature/feature.xml | 1 +
collector/log/pom.xml | 25 ++++
.../org.apache.karaf.decanter.collector.log.cfg | 7 ++
.../decanter/collector/log/LogAppender.java | 15 ++-
.../decanter/collector/log/LogAppenderTest.java | 116 ++++++++++++++++++-
5 files changed, 157 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/152f602d/assembly/src/main/feature/feature.xml
----------------------------------------------------------------------
diff --git a/assembly/src/main/feature/feature.xml b/assembly/src/main/feature/feature.xml
index c707b23..4466de8 100644
--- a/assembly/src/main/feature/feature.xml
+++ b/assembly/src/main/feature/feature.xml
@@ -35,6 +35,7 @@
<feature name="decanter-collector-log" version="${project.version}" description="Karaf Decanter Log Messages Collector">
<feature>decanter-common</feature>
<bundle>mvn:org.apache.karaf.decanter.collector/org.apache.karaf.decanter.collector.log/${project.version}</bundle>
+ <configfile finalname="/etc/org.apache.karaf.decanter.collector.log.cfg">mvn:org.apache.karaf.decanter.collector/org.apache.karaf.decanter.collector.log/${project.version}/cfg</configfile>
</feature>
<feature name="decanter-collector-log-socket-core" version="${project.version}" description="Karaf Decanter Log4j socket Collector core">
http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/152f602d/collector/log/pom.xml
----------------------------------------------------------------------
diff --git a/collector/log/pom.xml b/collector/log/pom.xml
index b7a9890..1040f79 100644
--- a/collector/log/pom.xml
+++ b/collector/log/pom.xml
@@ -41,4 +41,29 @@
</dependency>
</dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <artifacts>
+ <artifact>
+ <file>src/main/cfg/org.apache.karaf.decanter.collector.log.cfg</file>
+ <type>cfg</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
</project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/152f602d/collector/log/src/main/cfg/org.apache.karaf.decanter.collector.log.cfg
----------------------------------------------------------------------
diff --git a/collector/log/src/main/cfg/org.apache.karaf.decanter.collector.log.cfg b/collector/log/src/main/cfg/org.apache.karaf.decanter.collector.log.cfg
new file mode 100644
index 0000000..c3c11ec
--- /dev/null
+++ b/collector/log/src/main/cfg/org.apache.karaf.decanter.collector.log.cfg
@@ -0,0 +1,7 @@
+#
+# Decanter Log collector configuration
+#
+
+# logger categories that the log collector should ignore
+# By default, we ignored all messages coming from Decanter Appenders
+ignored.categories=org.apache.karaf.decanter.appender.*
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/152f602d/collector/log/src/main/java/org/apache/karaf/decanter/collector/log/LogAppender.java
----------------------------------------------------------------------
diff --git a/collector/log/src/main/java/org/apache/karaf/decanter/collector/log/LogAppender.java b/collector/log/src/main/java/org/apache/karaf/decanter/collector/log/LogAppender.java
index 068b62a..c833771 100644
--- a/collector/log/src/main/java/org/apache/karaf/decanter/collector/log/LogAppender.java
+++ b/collector/log/src/main/java/org/apache/karaf/decanter/collector/log/LogAppender.java
@@ -49,11 +49,11 @@ import org.slf4j.LoggerFactory;
public class LogAppender implements PaxAppender {
private static final String MDC_IN_LOG_APPENDER = "inLogAppender";
- private final static String[] ignoredCategories = {"org.apache.karaf.decanter.collector.log"};
private final static Logger LOGGER = LoggerFactory.getLogger(LogAppender.class);
private final static Pattern PATTERN = Pattern.compile("[^A-Za-z0-9]");
private Dictionary<String, Object> properties;
+ protected String[] ignoredCategories;
private EventAdmin dispatcher;
@@ -61,6 +61,9 @@ public class LogAppender implements PaxAppender {
@Activate
public void activate(ComponentContext context) {
this.properties = context.getProperties();
+ if (this.properties.get("ignored.categories") != null) {
+ ignoredCategories = ((String)this.properties.get("ignored.categories")).split(",");
+ }
}
public void doAppend(PaxLoggingEvent event) {
@@ -153,13 +156,15 @@ public class LogAppender implements PaxAppender {
return builder.toString();
}
- private boolean isIgnored(String loggerName) {
+ protected boolean isIgnored(String loggerName) {
if (loggerName == null) {
return true;
}
- for (String cat : ignoredCategories) {
- if (loggerName.equals(cat)) {
- return true;
+ if (ignoredCategories != null) {
+ for (String cat : ignoredCategories) {
+ if (loggerName.matches(cat)) {
+ return true;
+ }
}
}
return false;
http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/152f602d/collector/log/src/test/java/org/apache/karaf/decanter/collector/log/LogAppenderTest.java
----------------------------------------------------------------------
diff --git a/collector/log/src/test/java/org/apache/karaf/decanter/collector/log/LogAppenderTest.java b/collector/log/src/test/java/org/apache/karaf/decanter/collector/log/LogAppenderTest.java
index 8c728b6..a2d8f08 100644
--- a/collector/log/src/test/java/org/apache/karaf/decanter/collector/log/LogAppenderTest.java
+++ b/collector/log/src/test/java/org/apache/karaf/decanter/collector/log/LogAppenderTest.java
@@ -2,9 +2,21 @@ package org.apache.karaf.decanter.collector.log;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.not;
-import static org.junit.Assert.assertThat;
+import static org.junit.Assert.*;
import org.junit.Test;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.ServiceReference;
+import org.osgi.service.component.ComponentContext;
+import org.osgi.service.component.ComponentInstance;
+import org.osgi.service.event.Event;
+import org.osgi.service.event.EventAdmin;
+
+import java.util.ArrayList;
+import java.util.Dictionary;
+import java.util.List;
+import java.util.Properties;
public class LogAppenderTest {
@@ -20,7 +32,107 @@ public class LogAppenderTest {
assertThat(cleanedLoggerName, not(containsString("&")));
assertThat(cleanedLoggerName, not(containsString("!")));
assertThat(cleanedLoggerName, containsString("_"));
-
+ }
+
+ @Test
+ public void testIgnoredLoggerCategories() {
+ LogAppender appender = new LogAppender();
+
+ ComponentContext componentContext = new ComponentContextMock();
+ componentContext.getProperties().put("ignored.categories", "org.apache.karaf.decanter.collector.log.*,test,other");
+
+ appender.activate(componentContext);
+
+ assertEquals("org.apache.karaf.decanter.collector.log.*", appender.ignoredCategories[0]);
+ assertEquals("test", appender.ignoredCategories[1]);
+ assertEquals("other", appender.ignoredCategories[2]);
+
+ assertFalse(appender.isIgnored("org.apache.karaf.decanter.other"));
+ assertTrue(appender.isIgnored("org.apache.karaf.decanter.collector.log"));
+ assertTrue(appender.isIgnored("org.apache.karaf.decanter.collector.log.LogEvent"));
+ }
+
+ private class ComponentContextMock implements ComponentContext {
+
+ private Properties properties;
+
+ public ComponentContextMock() {
+ this.properties = new Properties();
+ }
+
+ @Override
+ public Dictionary getProperties() {
+ return this.properties;
+ }
+
+ @Override
+ public Object locateService(String s) {
+ return null;
+ }
+
+ @Override
+ public Object locateService(String s, ServiceReference serviceReference) {
+ return null;
+ }
+
+ @Override
+ public Object[] locateServices(String s) {
+ return new Object[0];
+ }
+
+ @Override
+ public BundleContext getBundleContext() {
+ return null;
+ }
+
+ @Override
+ public Bundle getUsingBundle() {
+ return null;
+ }
+
+ @Override
+ public ComponentInstance getComponentInstance() {
+ return null;
+ }
+
+ @Override
+ public void enableComponent(String s) {
+
+ }
+
+ @Override
+ public void disableComponent(String s) {
+
+ }
+
+ @Override
+ public ServiceReference getServiceReference() {
+ return null;
+ }
+ }
+
+ private class DispatcherMock implements EventAdmin {
+
+ private List<Event> postEvents = new ArrayList<>();
+ private List<Event> sendEvents = new ArrayList<>();
+
+ @Override
+ public void postEvent(Event event) {
+ postEvents.add(event);
+ }
+
+ @Override
+ public void sendEvent(Event event) {
+ sendEvents.add(event);
+ }
+
+ public List<Event> getPostEvents() {
+ return postEvents;
+ }
+
+ public List<Event> getSendEvents() {
+ return sendEvents;
+ }
}
}