Update of /var/cvs/src/org/mmbase/util/logging In directory james.mmbase.org:/tmp/cvs-serv13787
Modified Files: LoggerWriter.java Log Message: MMB-1811 See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/util/logging See also: http://www.mmbase.org/jira/browse/MMB-1811 Index: LoggerWriter.java =================================================================== RCS file: /var/cvs/src/org/mmbase/util/logging/LoggerWriter.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -b -r1.1 -r1.2 --- LoggerWriter.java 24 Apr 2009 16:28:39 -0000 1.1 +++ LoggerWriter.java 30 Apr 2009 16:36:01 -0000 1.2 @@ -7,13 +7,15 @@ */ package org.mmbase.util.logging; + import java.io.*; +import java.util.*; /** * A Writer that logs every line to a certain logger. * * @author Michiel Meeuwissen - * @version $Id: LoggerWriter.java,v 1.1 2009/04/24 16:28:39 michiel Exp $ + * @version $Id: LoggerWriter.java,v 1.2 2009/04/30 16:36:01 michiel Exp $ * @since MMBase-1.9.1 */ @@ -24,30 +26,47 @@ private final StringBuilder buffer = new StringBuilder(); private final Level level; + /** + * @param log The logger to which this Writer must write everythin + * @param lev On which level this must happen. If you want to log on different levels, then + * override {...@link #getLevel(String)} + */ public LoggerWriter(Logger log, Level lev) { logger = log; level = lev; } + protected Level getLevel(String line) { + return level; + } + protected void logLine(String line) { + Level l = getLevel(line); + if (l == null) l = level; + Logging.log(l, logger, line); + } + + + @Override public void write(char[] buf, int start, int end) throws IOException { buffer.append(buf, start, end); flush(); } - + @Override public void flush() throws IOException { String[] lines = buffer.toString().split("[\\n\\r]"); int used = 0; for (int i = 0 ; i < lines.length - 1; i++) { - Logging.log(level, logger, lines[i]); + logLine(lines[i]); used += lines[i].length(); used ++; } buffer.delete(0, used); } + @Override public void close() throws IOException { flush(); - Logging.log(level, logger, buffer.toString()); + logLine(buffer.toString()); } } _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs