You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by cs...@apache.org on 2016/05/20 13:29:14 UTC

karaf-decanter git commit: Fixes for log appender and collector

Repository: karaf-decanter
Updated Branches:
  refs/heads/master 5f01df422 -> af1a5f8a9


Fixes for log appender and collector


Project: http://git-wip-us.apache.org/repos/asf/karaf-decanter/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf-decanter/commit/af1a5f8a
Tree: http://git-wip-us.apache.org/repos/asf/karaf-decanter/tree/af1a5f8a
Diff: http://git-wip-us.apache.org/repos/asf/karaf-decanter/diff/af1a5f8a

Branch: refs/heads/master
Commit: af1a5f8a93da1b11043fe14bca44e2717d245007
Parents: 5f01df4
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Fri May 20 15:28:55 2016 +0200
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Fri May 20 15:28:55 2016 +0200

----------------------------------------------------------------------
 .../decanter/appender/log/LogAppender.java      |  6 ++++-
 .../collector/kafka/KafkaCollector.java         |  2 +-
 .../collector/log/socket/SocketCollector.java   | 28 ++++++++++++--------
 3 files changed, 23 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/af1a5f8a/appender/log/src/main/java/org/apache/karaf/decanter/appender/log/LogAppender.java
----------------------------------------------------------------------
diff --git a/appender/log/src/main/java/org/apache/karaf/decanter/appender/log/LogAppender.java b/appender/log/src/main/java/org/apache/karaf/decanter/appender/log/LogAppender.java
index 32325cd..9e648c0 100644
--- a/appender/log/src/main/java/org/apache/karaf/decanter/appender/log/LogAppender.java
+++ b/appender/log/src/main/java/org/apache/karaf/decanter/appender/log/LogAppender.java
@@ -41,9 +41,13 @@ public class LogAppender implements EventHandler {
     public void handleEvent(Event event) {
         StringBuilder builder = new StringBuilder();
         for (String innerKey : event.getPropertyNames()) {
-            builder.append(innerKey).append(":").append(event.getProperty(innerKey).toString()).append(" |�");
+            builder.append(innerKey).append(":").append(toString(event.getProperty(innerKey))).append(" |�");
         }
         LOGGER.info(builder.toString());
     }
 
+    private Object toString(Object value) {
+        return value == null ? null : value.toString();
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/af1a5f8a/collector/kafka/src/main/java/org/apache/karaf/decanter/collector/kafka/KafkaCollector.java
----------------------------------------------------------------------
diff --git a/collector/kafka/src/main/java/org/apache/karaf/decanter/collector/kafka/KafkaCollector.java b/collector/kafka/src/main/java/org/apache/karaf/decanter/collector/kafka/KafkaCollector.java
index 2c6e788..4371da3 100644
--- a/collector/kafka/src/main/java/org/apache/karaf/decanter/collector/kafka/KafkaCollector.java
+++ b/collector/kafka/src/main/java/org/apache/karaf/decanter/collector/kafka/KafkaCollector.java
@@ -161,7 +161,7 @@ public class KafkaCollector implements Runnable {
     }
 
     private void consume() throws UnsupportedEncodingException {
-        ConsumerRecords<String, String> records = consumer.poll(100);
+        ConsumerRecords<String, String> records = consumer.poll(10000);
         if (records.isEmpty()) {
             return;
         }

http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/af1a5f8a/collector/log4j-socket/src/main/java/org/apache/karaf/decanter/collector/log/socket/SocketCollector.java
----------------------------------------------------------------------
diff --git a/collector/log4j-socket/src/main/java/org/apache/karaf/decanter/collector/log/socket/SocketCollector.java b/collector/log4j-socket/src/main/java/org/apache/karaf/decanter/collector/log/socket/SocketCollector.java
index f6715f2..145c5bb 100644
--- a/collector/log4j-socket/src/main/java/org/apache/karaf/decanter/collector/log/socket/SocketCollector.java
+++ b/collector/log4j-socket/src/main/java/org/apache/karaf/decanter/collector/log/socket/SocketCollector.java
@@ -18,6 +18,7 @@ package org.apache.karaf.decanter.collector.log.socket;
 
 import java.io.BufferedInputStream;
 import java.io.Closeable;
+import java.io.EOFException;
 import java.io.IOException;
 import java.io.ObjectInputStream;
 import java.net.InetAddress;
@@ -37,16 +38,14 @@ import org.apache.log4j.spi.LoggingEvent;
 import org.osgi.service.component.ComponentContext;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
 import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.event.Event;
 import org.osgi.service.event.EventAdmin;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@Component(
-    name = "org.apache.karaf.decanter.collector.log.socket",
-    immediate = true
-)
+@Component(name = "org.apache.karaf.decanter.collector.log.socket", immediate = true)
 public class SocketCollector implements Closeable, Runnable {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(SocketCollector.class);
@@ -67,17 +66,19 @@ public class SocketCollector implements Closeable, Runnable {
         this.executor.execute(this);
         this.open = true;
     }
-    
+
     private String getProperty(Dictionary<String, Object> properties, String key, String defaultValue) {
-        return (properties.get(key) != null) ? (String) properties.get(key) : defaultValue;
+        return (properties.get(key) != null) ? (String)properties.get(key) : defaultValue;
     }
 
     @Override
     public void run() {
         while (open) {
-            try (Socket socket = serverSocket.accept();
+            try ( //
+                Socket socket = serverSocket.accept();
                 ObjectInputStream ois = new ObjectInputStream(new BufferedInputStream(socket
-                    .getInputStream()));) {
+                    .getInputStream())); //
+            ) {
                 while (open) {
                     try {
                         Object event = ois.readObject();
@@ -88,6 +89,8 @@ public class SocketCollector implements Closeable, Runnable {
                         LOGGER.warn("Unable to deserialize event from " + socket.getInetAddress(), e);
                     }
                 }
+            } catch (EOFException e) {
+                LOGGER.debug("Log client closed the connection.", e);
             } catch (IOException e) {
                 LOGGER.warn("Exception receiving log.", e);
             }
@@ -95,6 +98,7 @@ public class SocketCollector implements Closeable, Runnable {
     }
 
     private void handleLog4j(LoggingEvent event) throws UnknownHostException {
+        LOGGER.debug("Received log event {}", event.getLoggerName());
         Map<String, Object> data = new HashMap<>();
         data.put("hostAddress", InetAddress.getLocalHost().getHostAddress());
         data.put("hostName", InetAddress.getLocalHost().getHostName());
@@ -135,7 +139,7 @@ public class SocketCollector implements Closeable, Runnable {
 
     static String loggerName2Topic(String loggerName) {
         StringBuilder out = new StringBuilder();
-        for (int c=0; c<loggerName.length(); c++) {
+        for (int c = 0; c < loggerName.length(); c++) {
             Character ch = loggerName.charAt(c);
             if (Character.isDigit(ch) || Character.isLowerCase(ch) || Character.isUpperCase(ch)) {
                 out.append(ch);
@@ -149,7 +153,7 @@ public class SocketCollector implements Closeable, Runnable {
         }
         return "decanter/collect/log/" + outSt.replace(".", "/");
     }
-    
+
     private void putLocation(Map<String, Object> data, LocationInfo loc) {
         data.put("loc.class", loc.getClassName());
         data.put("loc.file", loc.getFileName());
@@ -165,8 +169,10 @@ public class SocketCollector implements Closeable, Runnable {
         return builder.toString();
     }
 
+    @Deactivate
     @Override
     public void close() throws IOException {
+        this.open = false;
         try {
             this.executor.shutdown();
             try {
@@ -180,7 +186,7 @@ public class SocketCollector implements Closeable, Runnable {
         }
         serverSocket.close();
     }
-    
+
     @Reference
     public void setEventAdmin(EventAdmin eventAdmin) {
         this.eventAdmin = eventAdmin;