You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by an...@apache.org on 2011/04/18 23:09:47 UTC

svn commit: r1094747 - in /karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log: DisplayException.java DisplayLog.java LogTail.java

Author: anierbeck
Date: Mon Apr 18 21:09:47 2011
New Revision: 1094747

URL: http://svn.apache.org/viewvc?rev=1094747&view=rev
Log:
[KARAF-560] - Modify all console log commands to receive a "logger" argument.
Thanks for mikevan for providing this patch

Modified:
    karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/DisplayException.java
    karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/DisplayLog.java
    karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/LogTail.java

Modified: karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/DisplayException.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/DisplayException.java?rev=1094747&r1=1094746&r2=1094747&view=diff
==============================================================================
--- karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/DisplayException.java (original)
+++ karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/DisplayException.java Mon Apr 18 21:09:47 2011
@@ -18,11 +18,15 @@ package org.apache.karaf.shell.log;
 
 import org.ops4j.pax.logging.spi.PaxLoggingEvent;
 import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Command;
 
 @Command(scope = "log", name = "display-exception", description = "Displays the last occurred exception from the log.")
 public class DisplayException extends OsgiCommandSupport {
 
+    @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;
+    
     protected LruList events;
 
     public LruList getEvents() {
@@ -37,9 +41,17 @@ public class DisplayException extends Os
         PaxLoggingEvent throwableEvent = null;
         Iterable<PaxLoggingEvent> le = events.getElements(Integer.MAX_VALUE);
         for (PaxLoggingEvent event : le) {
-            if (event.getThrowableStrRep() != null) {
+        	// if this is an exception, and the log is the same as the requested log,
+        	// then save this exception and continue iterating from oldest to newest
+            if ((event.getThrowableStrRep() != null)
+            		&&(logger != null)
+            		&&(checkIfFromRequestedLog(event))) {
                 throwableEvent = event;
-                // Do not break, as we iterate from the oldest to the newest event
+              // Do not break, as we iterate from the oldest to the newest event
+            } else if ((event.getThrowableStrRep() != null)&&(logger == null)) {
+            	// now check if there has been no log passed in, and if this is an exception
+                // then save this exception and continue iterating from oldest to newest
+                throwableEvent = event;            	
             }
         }
         if (throwableEvent != null) {
@@ -50,5 +62,9 @@ public class DisplayException extends Os
         }
         return null;
     }
+        
+    protected boolean checkIfFromRequestedLog(PaxLoggingEvent event) {
+    	return (event.getLoggerName().lastIndexOf(logger)>=0) ? true : false;
+    }
 
 }

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=1094747&r1=1094746&r2=1094747&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 Apr 18 21:09:47 2011
@@ -21,6 +21,7 @@ import java.io.PrintStream;
 import org.apache.karaf.shell.log.layout.PatternConverter;
 import org.apache.karaf.shell.log.layout.PatternParser;
 import org.apache.karaf.shell.console.OsgiCommandSupport;
+import org.apache.felix.gogo.commands.Argument;
 import org.apache.felix.gogo.commands.Option;
 import org.apache.felix.gogo.commands.Command;
 import org.ops4j.pax.logging.spi.PaxAppender;
@@ -41,6 +42,9 @@ public class DisplayLog extends OsgiComm
     @Option(name = "--no-color", description="Disable syntax coloring of log events", required = false, multiValued = false)
     protected boolean noColor;
 
+    @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;
+
     protected String pattern;
     protected LruList events;
     protected String fatalColor;
@@ -131,13 +135,20 @@ public class DisplayLog extends OsgiComm
 
         Iterable<PaxLoggingEvent> le = events.getElements(entries == 0 ? Integer.MAX_VALUE : entries);
         for (PaxLoggingEvent event : le) {
-            if (event != null) {
-                display(cnv, event, out);
-            }
+			if ((logger != null) && (event != null)
+					&& (checkIfFromRequestedLog(event))) {
+				display(cnv, event, out);
+			} else if ((event != null) && (logger == null)) {
+				display(cnv, event, out);
+			}
         }
         out.println();
         return null;
     }
+        
+    protected boolean checkIfFromRequestedLog(PaxLoggingEvent event) {
+    	return (event.getLoggerName().lastIndexOf(logger)>=0) ? true : false;
+    }
 
     protected void display(PatternConverter cnv, PaxLoggingEvent event, PrintStream stream) {
         String color = getColor(event);

Modified: karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/LogTail.java
URL: http://svn.apache.org/viewvc/karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/LogTail.java?rev=1094747&r1=1094746&r2=1094747&view=diff
==============================================================================
--- karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/LogTail.java (original)
+++ karaf/trunk/shell/log/src/main/java/org/apache/karaf/shell/log/LogTail.java Mon Apr 18 21:09:47 2011
@@ -17,8 +17,6 @@
 package org.apache.karaf.shell.log;
 
 import java.io.PrintStream;
-import java.util.LinkedList;
-import java.util.Queue;
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.LinkedBlockingQueue;
 
@@ -30,26 +28,41 @@ import org.ops4j.pax.logging.spi.PaxLogg
 
 @Command(scope = "log", name = "tail", description = "Continuously display log entries.")
 public class LogTail extends DisplayLog {
-
+	
     protected Object doExecute() throws Exception {
         final PatternConverter cnv = new PatternParser(overridenPattern != null ? overridenPattern : pattern).parse();
         final PrintStream out = System.out;
 
         Iterable<PaxLoggingEvent> le = events.getElements(entries == 0 ? Integer.MAX_VALUE : entries);
         for (PaxLoggingEvent event : le) {
-            display(cnv, event, out);
+            if ((logger != null) && 
+                (event != null)&&
+                (checkIfFromRequestedLog(event))) {
+                    display(cnv, event, out);
+                }
+                else if ((event != null)&&(logger == null)){
+                    display(cnv, event, out);      
+            }
         }
         // Tail
         final BlockingQueue<PaxLoggingEvent> queue = new LinkedBlockingQueue<PaxLoggingEvent>();
         PaxAppender appender = new PaxAppender() {
             public void doAppend(PaxLoggingEvent event) {
-                queue.add(event);
+                    queue.add(event);
             }
         };
         try {
             events.addAppender(appender);
             for (;;) {
-                display(cnv, queue.take(), out);
+            	PaxLoggingEvent event = queue.take();
+                if ((logger != null) && 
+                     (event != null)&&
+                     (checkIfFromRequestedLog(event))) {
+                            display(cnv, event, out);
+                    }
+                else if ((event != null)&&(logger == null)){
+                            display(cnv, event, out);      
+                    }
             }
         } catch (InterruptedException e) {
             // Ignore