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

Reply via email to