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