Index: lutinutil/src/java/org/codelutin/util/LoggingPatternFormatter.java diff -u lutinutil/src/java/org/codelutin/util/LoggingPatternFormatter.java:1.3 lutinutil/src/java/org/codelutin/util/LoggingPatternFormatter.java:1.4 --- lutinutil/src/java/org/codelutin/util/LoggingPatternFormatter.java:1.3 Thu Dec 23 18:19:15 2004 +++ lutinutil/src/java/org/codelutin/util/LoggingPatternFormatter.java Thu Jan 20 14:02:08 2005 @@ -23,14 +23,16 @@ * * @author POUSSIN Benjamin * Copyright Code Lutin -* @version $Revision: 1.3 $ +* @version $Revision: 1.4 $ * -* Mise a jour: $Date: 2004/12/23 18:19:15 $ +* Mise a jour: $Date: 2005/01/20 14:02:08 $ * par : $Author: bpoussin $ */ package org.codelutin.util; +import java.io.PrintWriter; +import java.io.StringWriter; import java.util.logging.Formatter; import java.util.logging.LogRecord; import java.util.logging.LogManager; @@ -63,6 +65,7 @@ *
  • c: class name
  • *
  • m: message
  • *
  • a: argument
  • +*
  • e: exception
  • * * * Sized element support justify pattern. @@ -86,7 +89,7 @@ public class LoggingPatternFormatter extends Formatter { // PatternFormatter private static final String DEFAULT_PATTERN = - "%d{yyyy-MM-dd HH:mm:ss} [free:%o{-7}|total:%O{-7}][%t][%p{7}] %c{org.codelutin.*|25} %M{15:105}: %m%n"; + "%d{yyyy-MM-dd HH:mm:ss} [free:%o{-7}|total:%O{-7}][%t][%p{7}] %c{org.codelutin.*|25} %M{15:105}: %m%n%e"; protected HashMap arguments = null; protected ArrayList compile = null; @@ -132,6 +135,7 @@ arguments.put("c", ClassNameArgument.class); arguments.put("M", MethodNameArgument.class); arguments.put("m", MessageArgument.class); + arguments.put("e", ExceptionArgument.class); } /** @@ -411,6 +415,23 @@ public StringBuffer toString(LogRecord record, StringBuffer toAppendTo){ return justify(record.getMessage(), toAppendTo); + } + } + + static protected class ExceptionArgument extends Argument{ + public ExceptionArgument(){super();} + public StringBuffer toString(LogRecord record, + StringBuffer toAppendTo){ + Throwable e = record.getThrown(); + if(e != null){ + toAppendTo.append(e.getMessage()); + toAppendTo.append("\n"); + StringWriter st = new StringWriter(); + e.printStackTrace(new PrintWriter(st)); + toAppendTo.append(st.toString()); + toAppendTo.append("\n"); + } + return toAppendTo; } }