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);