You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by gn...@apache.org on 2015/06/01 09:47:07 UTC
karaf git commit: [KARAF-2698] Add -l (level) option to
log:display/log:tail in order to filter messages only for a given log level
(and higher)
Repository: karaf
Updated Branches:
refs/heads/master 636cfe823 -> a7e08f0b2
[KARAF-2698] Add -l (level) option to log:display/log:tail in order to filter messages only for a given log level (and higher)
Project: http://git-wip-us.apache.org/repos/asf/karaf/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf/commit/a7e08f0b
Tree: http://git-wip-us.apache.org/repos/asf/karaf/tree/a7e08f0b
Diff: http://git-wip-us.apache.org/repos/asf/karaf/diff/a7e08f0b
Branch: refs/heads/master
Commit: a7e08f0b20b0ccc48fb46ed8c2e22b99106912eb
Parents: 636cfe8
Author: Guillaume Nodet <gn...@gmail.com>
Authored: Mon Jun 1 09:46:59 2015 +0200
Committer: Guillaume Nodet <gn...@gmail.com>
Committed: Mon Jun 1 09:46:59 2015 +0200
----------------------------------------------------------------------
.../apache/karaf/log/command/DisplayLog.java | 31 ++++++++++++++++++--
.../org/apache/karaf/log/command/LogTail.java | 19 ++++++++++--
2 files changed, 45 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/karaf/blob/a7e08f0b/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 f502922..5b74b38 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
@@ -23,9 +23,11 @@ import org.apache.karaf.log.core.LogService;
import org.apache.karaf.shell.api.action.Action;
import org.apache.karaf.shell.api.action.Argument;
import org.apache.karaf.shell.api.action.Command;
+import org.apache.karaf.shell.api.action.Completion;
import org.apache.karaf.shell.api.action.Option;
import org.apache.karaf.shell.api.action.lifecycle.Reference;
import org.apache.karaf.shell.api.action.lifecycle.Service;
+import org.apache.karaf.shell.support.completers.StringsCompleter;
import org.ops4j.pax.logging.spi.PaxLoggingEvent;
/**
@@ -35,6 +37,11 @@ import org.ops4j.pax.logging.spi.PaxLoggingEvent;
@Service
public class DisplayLog implements Action {
+ public final static int ERROR_INT = 3;
+ public final static int WARN_INT = 4;
+ public final static int INFO_INT = 6;
+ public final static int DEBUG_INT = 7;
+
@Option(name = "-n", aliases = {}, description="Number of entries to display", required = false, multiValued = false)
int entries;
@@ -44,6 +51,10 @@ public class DisplayLog implements Action {
@Option(name = "--no-color", description="Disable syntax coloring of log events", required = false, multiValued = false)
boolean noColor;
+ @Option(name = "-l", aliases = { "--level" }, description = "The miniml log level to display", required = false, multiValued = false)
+ @Completion(value = StringsCompleter.class, values = { "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "DEFAULT" })
+ String level;
+
@Argument(index = 0, name = "logger", description = "The name of the logger. This can be ROOT, ALL, or the name of a logger specified in the org.ops4j.pax.logger.cfg file.", required = false, multiValued = false)
String logger;
@@ -55,19 +66,33 @@ 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;
+ }
+ }
+
+
final PrintStream out = System.out;
Iterable<PaxLoggingEvent> le = logService.getEvents(entries == 0 ? Integer.MAX_VALUE : entries);
for (PaxLoggingEvent event : le) {
- printEvent(out, event);
+ int sl = event.getLevel().getSyslogEquivalent();
+ if (sl <= minLevel) {
+ printEvent(out, event);
+ }
}
out.println();
return null;
}
protected boolean checkIfFromRequestedLog(PaxLoggingEvent event) {
- return (event.getLoggerName().lastIndexOf(logger)>=0) ? true : false;
+ return event.getLoggerName().contains(logger);
}
protected void printEvent(final PrintStream out, PaxLoggingEvent event) {
http://git-wip-us.apache.org/repos/asf/karaf/blob/a7e08f0b/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 66a401b..1ee2918 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,10 +95,22 @@ public class LogTail extends DisplayLog {
boolean doDisplay = true;
public void run() {
+ int minLevel = Integer.MIN_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;
+ }
+ }
Iterable<PaxLoggingEvent> le = logService.getEvents(entries == 0 ? Integer.MAX_VALUE : entries);
for (PaxLoggingEvent event : le) {
if (event != null) {
- printEvent(out, event);
+ int sl = event.getLevel().getSyslogEquivalent();
+ if (sl <= minLevel) {
+ printEvent(out, event);
+ }
}
}
// Tail
@@ -114,7 +126,10 @@ public class LogTail extends DisplayLog {
while (doDisplay) {
PaxLoggingEvent event = queue.take();
if (event != null) {
- printEvent(out, event);
+ int sl = event.getLevel().getSyslogEquivalent();
+ if (sl <= minLevel) {
+ printEvent(out, event);
+ }
}
}
} catch (InterruptedException e) {