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
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs