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 2017/01/27 12:07:21 UTC

[1/2] karaf git commit: [KARAF-4959] Avoid logging message duplicates

Repository: karaf
Updated Branches:
  refs/heads/master e39183715 -> 33c94fd15


[KARAF-4959] Avoid logging message duplicates


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

Branch: refs/heads/master
Commit: 1f1973c60ed9c13677b7057b2a1bc82c45045916
Parents: e391837
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Fri Jan 27 13:06:00 2017 +0100
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Fri Jan 27 13:06:00 2017 +0100

----------------------------------------------------------------------
 .../karaf/log/core/internal/KarafLogEvent.java  | 107 +++++++++++++++++++
 .../apache/karaf/log/core/internal/LruList.java |   2 +-
 2 files changed, 108 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/1f1973c6/log/src/main/java/org/apache/karaf/log/core/internal/KarafLogEvent.java
----------------------------------------------------------------------
diff --git a/log/src/main/java/org/apache/karaf/log/core/internal/KarafLogEvent.java b/log/src/main/java/org/apache/karaf/log/core/internal/KarafLogEvent.java
new file mode 100644
index 0000000..4cfd742
--- /dev/null
+++ b/log/src/main/java/org/apache/karaf/log/core/internal/KarafLogEvent.java
@@ -0,0 +1,107 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.karaf.log.core.internal;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.ops4j.pax.logging.spi.PaxLevel;
+import org.ops4j.pax.logging.spi.PaxLocationInfo;
+import org.ops4j.pax.logging.spi.PaxLoggingEvent;
+
+@SuppressWarnings("rawtypes")
+public class KarafLogEvent implements PaxLoggingEvent {
+    
+    private PaxLocationInfo locationInformation;
+    private PaxLevel level;
+    private String loggerName;
+    private String message;
+    private String threadName;
+    private String[] throwableStrRep;
+    private long timeStamp;
+    private String fQNOfLoggerClass;
+    private Map properties;
+
+    @SuppressWarnings("unchecked")
+    public KarafLogEvent(PaxLoggingEvent event) {
+        this.level = event.getLevel();
+        this.loggerName = event.getLoggerName();
+        this.message = event.getMessage();
+        this.threadName = event.getThreadName();
+        this.throwableStrRep = event.getThrowableStrRep();
+        this.timeStamp = event.getTimeStamp();
+        this.fQNOfLoggerClass = event.getFQNOfLoggerClass();
+        this.properties = new HashMap(event.getProperties());
+    }
+
+    @Override
+    public PaxLocationInfo getLocationInformation() {
+        return this.locationInformation;
+    }
+
+    @Override
+    public PaxLevel getLevel() {
+        return this.level;
+    }
+
+    @Override
+    public String getLoggerName() {
+        // TODO Auto-generated method stub
+        return this.loggerName;
+    }
+
+    @Override
+    public String getMessage() {
+        return this.message;
+    }
+
+    @Override
+    public String getRenderedMessage() {
+        return this.message;
+    }
+
+    @Override
+    public String getThreadName() {
+        return this.threadName;
+    }
+
+    @Override
+    public String[] getThrowableStrRep() {
+        return this.throwableStrRep;
+    }
+
+    @Override
+    public boolean locationInformationExists() {
+        return false;
+    }
+
+    @Override
+    public long getTimeStamp() {
+        return this.timeStamp;
+    }
+
+    @Override
+    public String getFQNOfLoggerClass() {
+        return this.fQNOfLoggerClass;
+    }
+
+    @Override
+    public Map getProperties() {
+        return this.properties;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/karaf/blob/1f1973c6/log/src/main/java/org/apache/karaf/log/core/internal/LruList.java
----------------------------------------------------------------------
diff --git a/log/src/main/java/org/apache/karaf/log/core/internal/LruList.java b/log/src/main/java/org/apache/karaf/log/core/internal/LruList.java
index 0423f7f..ca4329b 100644
--- a/log/src/main/java/org/apache/karaf/log/core/internal/LruList.java
+++ b/log/src/main/java/org/apache/karaf/log/core/internal/LruList.java
@@ -79,7 +79,7 @@ public class LruList implements PaxAppender {
                 full = false;
             }
         }
-        elements[end++] = element;
+        elements[end++] = new KarafLogEvent(element);
         if (end >= maxElements) {
             end = 0;
         }


[2/2] karaf git commit: [KARAF-4959] Small refactorings

Posted by cs...@apache.org.
[KARAF-4959] Small refactorings


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

Branch: refs/heads/master
Commit: 33c94fd154a1ae094e406d2658a8517a496b6923
Parents: 1f1973c
Author: Christian Schneider <ch...@die-schneider.net>
Authored: Fri Jan 27 13:07:08 2017 +0100
Committer: Christian Schneider <ch...@die-schneider.net>
Committed: Fri Jan 27 13:07:08 2017 +0100

----------------------------------------------------------------------
 .../apache/karaf/log/command/DisplayLog.java    | 23 ++++++++++++--------
 .../org/apache/karaf/log/command/LogTail.java   | 19 ++--------------
 .../karaf/log/core/internal/LogServiceImpl.java |  1 -
 .../log/core/internal/LogServiceLog4j1Impl.java |  2 +-
 .../log/core/internal/LogServiceLog4j2Impl.java | 22 ++++++++++++++-----
 5 files changed, 33 insertions(+), 34 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf/blob/33c94fd1/log/src/main/java/org/apache/karaf/log/command/DisplayLog.java
----------------------------------------------------------------------
diff --git a/log/src/main/java/org/apache/karaf/log/command/DisplayLog.java b/log/src/main/java/org/apache/karaf/log/command/DisplayLog.java
index 545637f..0d73c1d 100644
--- a/log/src/main/java/org/apache/karaf/log/command/DisplayLog.java
+++ b/log/src/main/java/org/apache/karaf/log/command/DisplayLog.java
@@ -67,15 +67,7 @@ public class DisplayLog implements Action {
     @Override
     public Object execute() throws Exception {
 
-        int minLevel = Integer.MAX_VALUE;
-        if (level != null) {
-            switch (level.toLowerCase()) {
-            case "debug": minLevel = DEBUG_INT; break;
-            case "info":  minLevel = INFO_INT; break;
-            case "warn":  minLevel = WARN_INT; break;
-            case "error": minLevel = ERROR_INT; break;
-            }
-        }
+        int minLevel = getMinLevel(level);
 
 
         final PrintStream out = System.out;
@@ -87,6 +79,19 @@ public class DisplayLog implements Action {
         out.println();
         return null;
     }
+
+    protected static int getMinLevel(String levelSt) {
+        int minLevel = Integer.MAX_VALUE;
+        if (levelSt != null) {
+            switch (levelSt.toLowerCase()) {
+            case "debug": minLevel = DEBUG_INT; break;
+            case "info":  minLevel = INFO_INT; break;
+            case "warn":  minLevel = WARN_INT; break;
+            case "error": minLevel = ERROR_INT; break;
+            }
+        }
+        return minLevel;
+    }
         
     protected boolean checkIfFromRequestedLog(PaxLoggingEvent event) {
     	return event.getLoggerName().contains(logger);

http://git-wip-us.apache.org/repos/asf/karaf/blob/33c94fd1/log/src/main/java/org/apache/karaf/log/command/LogTail.java
----------------------------------------------------------------------
diff --git a/log/src/main/java/org/apache/karaf/log/command/LogTail.java b/log/src/main/java/org/apache/karaf/log/command/LogTail.java
index 5a2810f..6e3fe23 100644
--- a/log/src/main/java/org/apache/karaf/log/command/LogTail.java
+++ b/log/src/main/java/org/apache/karaf/log/command/LogTail.java
@@ -95,15 +95,7 @@ public class LogTail extends DisplayLog {
         boolean doDisplay = true;
 
         public void run() {
-            int minLevel = Integer.MAX_VALUE;
-            if (level != null) {
-                switch (level.toLowerCase()) {
-                case "debug": minLevel = DEBUG_INT; break;
-                case "info":  minLevel = INFO_INT; break;
-                case "warn":  minLevel = WARN_INT; break;
-                case "error": minLevel = ERROR_INT; break;
-                }
-            }
+            int minLevel = getMinLevel(level);
             Iterable<PaxLoggingEvent> le = logService.getEvents(entries == 0 ? Integer.MAX_VALUE : entries);
             for (PaxLoggingEvent event : le) {
                 printEvent(out, event, minLevel);
@@ -117,15 +109,8 @@ public class LogTail extends DisplayLog {
             };
             try {
                 logService.addAppender(appender);
-                
                 while (doDisplay) {
-                    PaxLoggingEvent event = queue.take();
-                    if (event != null) {
-                        int sl = event.getLevel().getSyslogEquivalent();
-                        if (sl <= minLevel) {
-                            printEvent(out, event);
-                        }
-                    }
+                    printEvent(out, queue.take(), minLevel);
                 }
             } catch (InterruptedException e) {
                 // Ignore

http://git-wip-us.apache.org/repos/asf/karaf/blob/33c94fd1/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceImpl.java
----------------------------------------------------------------------
diff --git a/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceImpl.java b/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceImpl.java
index bbb8792..c72a0b6 100644
--- a/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceImpl.java
+++ b/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceImpl.java
@@ -72,7 +72,6 @@ public class LogServiceImpl implements LogService {
         setLevel(LogServiceInternal.ROOT_LOGGER, level);
     }
 
-    @SuppressWarnings("unchecked")
     public void setLevel(String logger, String level) {
         // make sure both uppercase and lowercase levels are supported
         level = level.toUpperCase();

http://git-wip-us.apache.org/repos/asf/karaf/blob/33c94fd1/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceLog4j1Impl.java
----------------------------------------------------------------------
diff --git a/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceLog4j1Impl.java b/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceLog4j1Impl.java
index a538cb5..e9d6cd5 100644
--- a/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceLog4j1Impl.java
+++ b/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceLog4j1Impl.java
@@ -43,7 +43,7 @@ public class LogServiceLog4j1Impl implements LogServiceInternal {
         if (ALL_LOGGER.equalsIgnoreCase(logger)) {
             String root = getLevelFromProperty((String) config.get(ROOT_LOGGER_PREFIX));
             loggers.put(ROOT_LOGGER, root);
-            for (Enumeration e = config.keys(); e.hasMoreElements(); ) {
+            for (Enumeration<String> e = config.keys(); e.hasMoreElements(); ) {
                 String prop = (String) e.nextElement();
                 if (prop.startsWith(LOGGER_PREFIX)) {
                     String val = getLevelFromProperty((String) config.get(prop));

http://git-wip-us.apache.org/repos/asf/karaf/blob/33c94fd1/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceLog4j2Impl.java
----------------------------------------------------------------------
diff --git a/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceLog4j2Impl.java b/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceLog4j2Impl.java
index 555e8ec..2721145 100644
--- a/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceLog4j2Impl.java
+++ b/log/src/main/java/org/apache/karaf/log/core/internal/LogServiceLog4j2Impl.java
@@ -35,9 +35,13 @@ public class LogServiceLog4j2Impl implements LogServiceInternal {
     static final String LEVEL_SUFFIX = ".level";
 
     private final Map<String, Object> config;
+    private Pattern namePattern;
+    private Pattern levelPattern;
 
     public LogServiceLog4j2Impl(Dictionary<String, Object> config) {
         this.config = new DictionaryAsMap<>(config);
+        namePattern = Pattern.compile("log4j2\\.logger\\.([a-zA-Z_]+)\\.name");
+        levelPattern = Pattern.compile("log4j2\\.logger\\.([a-zA-Z_]+)\\.level");
     }
 
     public Map<String, String> getLevel(String logger) {
@@ -52,13 +56,14 @@ public class LogServiceLog4j2Impl implements LogServiceInternal {
         Map<String, String> names = new HashMap<>();
         Map<String, String> levels = new HashMap<>();
         for (String key : config.keySet()) {
-            Matcher matcher = Pattern.compile("log4j2\\.logger\\.([a-zA-Z_]+)\\.name").matcher(key);
-            if (matcher.matches()) {
-                names.put(matcher.group(1), config.get(key).toString());
+            String loggerName = getMatching(namePattern, key);
+            if (loggerName != null) {
+                names.put(loggerName, config.get(key).toString());
             }
-            matcher = Pattern.compile("log4j2\\.logger\\.([a-zA-Z_]+)\\.level").matcher(key);
-            if (matcher.matches()) {
-                levels.put(matcher.group(1), config.get(key).toString());
+            
+            loggerName  = getMatching(namePattern, key);levelPattern.matcher(key);
+            if (loggerName != null) {
+                levels.put(loggerName, config.get(key).toString());
             }
         }
         for (Map.Entry<String, String> e : names.entrySet()) {
@@ -84,6 +89,11 @@ public class LogServiceLog4j2Impl implements LogServiceInternal {
         }
     }
 
+    private String getMatching(Pattern pattern, String key) {
+        Matcher matcher = pattern.matcher(key);
+        return (matcher.matches()) ? matcher.group(1) : null;
+    }
+
     public void setLevel(String logger, String level) {
         if (logger == null || LogServiceInternal.ROOT_LOGGER.equalsIgnoreCase(logger)) {
             config.put(ROOT_LOGGER_LEVEL, level);