Update of /var/cvs/src/org/mmbase/util/logging
In directory james.mmbase.org:/tmp/cvs-serv3403

Modified Files:
        LoggerAccepter.java ChainedLogger.java 
Log Message:
made 'ChainedLogger' a bit more complete, so you can also remove items from the 
chain


See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/util/logging


Index: LoggerAccepter.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/util/logging/LoggerAccepter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- LoggerAccepter.java 24 Apr 2009 16:28:39 -0000      1.1
+++ LoggerAccepter.java 27 Apr 2009 12:03:59 -0000      1.2
@@ -17,14 +17,18 @@
  * A LoggerAccepter is a class with a public 'addLogger' method. The class can 
log things to that
  * which may be of interest to the caller of that method.
 
- * It may well be implemented usign {...@ling ChainedLogger}.
+ * It may well be implemented using {...@ling ChainedLogger}.
  *
  * @author     Michiel Meeuwissen
  * @since      MMBase-1.9.1
- * @version $Id: LoggerAccepter.java,v 1.1 2009/04/24 16:28:39 michiel Exp $
+ * @version $Id: LoggerAccepter.java,v 1.2 2009/04/27 12:03:59 michiel Exp $
  */
 public interface LoggerAccepter {
 
     void addLogger(Logger l);
 
+    boolean containsLogger(Logger l);
+
+    boolean removeLogger(Logger l);
+
 }


Index: ChainedLogger.java
===================================================================
RCS file: /var/cvs/src/org/mmbase/util/logging/ChainedLogger.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- ChainedLogger.java  10 Feb 2009 09:28:22 -0000      1.1
+++ ChainedLogger.java  27 Apr 2009 12:03:59 -0000      1.2
@@ -12,17 +12,18 @@
 
 import java.io.*;
 import java.util.*;
+import java.util.concurrent.*;
 
 /**
  * Straight forward implemented which simply delegated every log-statement to 
a list of other other loggers.
  *
  * @author     Michiel Meeuwissen
  * @since      MMBase-1.9.1
- * @version $Id: ChainedLogger.java,v 1.1 2009/02/10 09:28:22 michiel Exp $
+ * @version $Id: ChainedLogger.java,v 1.2 2009/04/27 12:03:59 michiel Exp $
  */
 public class ChainedLogger implements Logger {
 
-    private final List<Logger> loggers = new ArrayList<Logger>();
+    private final List<Logger> loggers = new CopyOnWriteArrayList<Logger>();
     public ChainedLogger(Logger... ls) {
         for (Logger l : ls) {
             addLogger(l);
@@ -34,6 +35,22 @@
         return this;
     }
 
+    public boolean containsLogger(Logger l) {
+        return loggers.contains(l);
+    }
+
+    public boolean removeLogger(Logger l) {
+        Iterator<Logger> i =  loggers.iterator();
+        while (i.hasNext()) {
+            Logger log = i.next();
+            if (log.equals(l)) {
+                i.remove();
+                return true;
+            }
+        }
+        return false;
+    }
+
 
     public void trace (Object m) {
         for (Logger log : loggers) {
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to