Author: gnodet
Date: Mon Sep 27 14:41:34 2010
New Revision: 1001761
URL: http://svn.apache.org/viewvc?rev=1001761&view=rev
Log:
[KARAF-224] Improve log:display command to display colored log events
Modified:
karaf/trunk/shell/log/pom.xml
karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/DisplayLog.java
karaf/trunk/shell/log/src/main/resources/OSGI-INF/blueprint/shell-log.xml
Modified: karaf/trunk/shell/log/pom.xml
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/log/pom.xml?rev=1001761&r1=1001760&r2=1001761&view=diff
==============================================================================
--- karaf/trunk/shell/log/pom.xml (original)
+++ karaf/trunk/shell/log/pom.xml Mon Sep 27 14:41:34 2010
@@ -62,11 +62,9 @@
<groupId>org.ops4j.pax.logging</groupId>
<artifactId>pax-logging-service</artifactId>
</dependency>
-
<dependency>
<groupId>org.ops4j.pax.logging</groupId>
<artifactId>pax-logging-api</artifactId>
- <scope>test</scope>
</dependency>
</dependencies>
Modified:
karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/DisplayLog.java
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/DisplayLog.java?rev=1001761&r1=1001760&r2=1001761&view=diff
==============================================================================
---
karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/DisplayLog.java
(original)
+++
karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/DisplayLog.java
Mon Sep 27 14:41:34 2010
@@ -35,8 +35,28 @@ public class DisplayLog extends OsgiComm
@Option(name = "-p", aliases = {}, description="Pattern for formatting the
output", required = false, multiValued = false)
protected String overridenPattern;
+ @Option(name = "--no-color", description="Disable syntax coloring of log
events", required = false, multiValued = false)
+ protected boolean noColor;
+
protected String pattern;
protected LruList events;
+ protected String fatalColor;
+ protected String errorColor;
+ protected String warnColor;
+ protected String infoColor;
+ protected String debugColor;
+ protected String traceColor;
+
+ private static final String FATAL = "fatal";
+ private static final String ERROR = "error";
+ private static final String WARN = "warn";
+ private static final String INFO = "info";
+ private static final String DEBUG = "debug";
+ private static final String TRACE = "trace";
+
+ private static final char FIRST_ESC_CHAR = 27;
+ private static final char SECOND_ESC_CHAR = '[';
+ private static final char COMMAND_CHAR = 'm';
public LruList getEvents() {
return events;
@@ -54,26 +74,111 @@ public class DisplayLog extends OsgiComm
this.pattern = pattern;
}
+ public String getFatalColor() {
+ return fatalColor;
+ }
+
+ public void setFatalColor(String fatalColor) {
+ this.fatalColor = fatalColor;
+ }
+
+ public String getErrorColor() {
+ return errorColor;
+ }
+
+ public void setErrorColor(String errorColor) {
+ this.errorColor = errorColor;
+ }
+
+ public String getWarnColor() {
+ return warnColor;
+ }
+
+ public void setWarnColor(String warnColor) {
+ this.warnColor = warnColor;
+ }
+
+ public String getInfoColor() {
+ return infoColor;
+ }
+
+ public void setInfoColor(String infoColor) {
+ this.infoColor = infoColor;
+ }
+
+ public String getDebugColor() {
+ return debugColor;
+ }
+
+ public void setDebugColor(String debugColor) {
+ this.debugColor = debugColor;
+ }
+
+ public String getTraceColor() {
+ return traceColor;
+ }
+
+ public void setTraceColor(String traceColor) {
+ this.traceColor = traceColor;
+ }
+
protected Object doExecute() throws Exception {
PatternConverter cnv = new PatternParser(overridenPattern != null ?
overridenPattern : pattern).parse();
Iterable<PaxLoggingEvent> le = events.getElements(entries == 0 ?
Integer.MAX_VALUE : entries);
StringBuffer sb = new StringBuffer();
for (PaxLoggingEvent event : le) {
+ String color = getColor(event);
sb.setLength(0);
+ if (color != null) {
+ sb.append(FIRST_ESC_CHAR);
+ sb.append(SECOND_ESC_CHAR);
+ sb.append(color);
+ sb.append(COMMAND_CHAR);
+ }
for (PatternConverter pc = cnv; pc != null; pc = pc.next) {
pc.format(sb, event);
}
- System.out.print(sb.toString());
if (event.getThrowableStrRep() != null) {
for (String r : event.getThrowableStrRep()) {
- System.out.println(r);
+ sb.append(r).append('\n');
}
}
+ if (color != null) {
+ sb.append(FIRST_ESC_CHAR);
+ sb.append(SECOND_ESC_CHAR);
+ sb.append("0");
+ sb.append(COMMAND_CHAR);
+ }
+ System.out.print(sb.toString());
}
System.out.println();
return null;
}
+ private String getColor(PaxLoggingEvent event) {
+ String color = null;
+ if (!noColor) {
+ String lvl = event.getLevel().toString().toLowerCase();
+ if (FATAL.equals(lvl)) {
+ color = fatalColor;
+ } else if (ERROR.equals(lvl)) {
+ color = errorColor;
+ } else if (WARN.equals(lvl)) {
+ color = warnColor;
+ } else if (INFO.equals(lvl)) {
+ color = infoColor;
+ } else if (DEBUG.equals(lvl)) {
+ color = debugColor;
+ } else if (TRACE.equals(lvl)) {
+ color = traceColor;
+ }
+ if (color != null && color.length() == 0) {
+ color = null;
+ }
+ }
+ return color;
+ }
+
}
Modified:
karaf/trunk/shell/log/src/main/resources/OSGI-INF/blueprint/shell-log.xml
URL:
http://svn.apache.org/viewvc/karaf/trunk/shell/log/src/main/resources/OSGI-INF/blueprint/shell-log.xml?rev=1001761&r1=1001760&r2=1001761&view=diff
==============================================================================
--- karaf/trunk/shell/log/src/main/resources/OSGI-INF/blueprint/shell-log.xml
(original)
+++ karaf/trunk/shell/log/src/main/resources/OSGI-INF/blueprint/shell-log.xml
Mon Sep 27 14:41:34 2010
@@ -26,6 +26,12 @@
<cm:default-properties>
<cm:property name="size" value="500"/>
<cm:property name="pattern" value="%d{ABSOLUTE} | %-5.5p |
%-16.16t | %-32.32c{1} | %-32.32C %4L | %m%n"/>
+ <cm:property name="fatalColor" value="31"/>
+ <cm:property name="errorColor" value="31"/>
+ <cm:property name="warnColor" value="35"/>
+ <cm:property name="infoColor" value="36"/>
+ <cm:property name="debugColor" value="39"/>
+ <cm:property name="traceColor" value="39"/>
</cm:default-properties>
</cm:property-placeholder>
@@ -34,6 +40,12 @@
<action class="org.apache.karaf.shell.log.DisplayLog">
<property name="events" ref="events"/>
<property name="pattern" value="${pattern}"/>
+ <property name="fatalColor" value="${fatalColor}"/>
+ <property name="errorColor" value="${errorColor}"/>
+ <property name="warnColor" value="${warnColor}"/>
+ <property name="infoColor" value="${infoColor}"/>
+ <property name="debugColor" value="${debugColor}"/>
+ <property name="traceColor" value="${traceColor}"/>
</action>
</command>
<command name="log/display-exception">
@@ -65,7 +77,7 @@
<service ref="vmLogAppender"
interface="org.ops4j.pax.logging.spi.PaxAppender">
<service-properties>
- <entry key="org.ops4j.pax.logging.appender.name"
value="VmLogAppender"/>
+ <entry key="org.ops4j.pax.logging.appender.name"
value="VmLogAppender"/>
</service-properties>
</service>