01: /*
02: * Copyright 2000,2005 wingS development team.
03: *
04: * This file is part of wingS (http://wingsframework.org).
05: *
06: * wingS is free software; you can redistribute it and/or modify
07: * it under the terms of the GNU Lesser General Public License
08: * as published by the Free Software Foundation; either version 2.1
09: * of the License, or (at your option) any later version.
10: *
11: * Please see COPYING for the complete licence.
12: */
13: package org.wings.util;
14:
15: import java.io.PrintWriter;
16: import java.io.StringWriter;
17: import java.text.DateFormat;
18: import java.text.SimpleDateFormat;
19: import java.util.Date;
20: import java.util.logging.LogRecord;
21:
22: public class ExtendedFormatter extends java.util.logging.Formatter {
23: private DateFormat dateFormatter;
24:
25: public ExtendedFormatter() {
26: dateFormatter = new SimpleDateFormat("yyyyMMdd hh:mm:ss,S");
27: }
28:
29: public String format(LogRecord record) {
30: SStringBuilder msg = new SStringBuilder();
31: msg.append(dateFormatter.format(new Date()));
32: msg.append(" ");
33: msg.append(record.getLevel());
34: msg.append(" ");
35: msg.append(record.getSourceClassName());
36: msg.append(" ");
37: msg.append(record.getSourceMethodName());
38: msg.append(": ");
39: msg.append(formatMessage(record));
40: msg.append("\n");
41: if (record.getThrown() != null)
42: msg.append(getBackTrace(record.getThrown()));
43:
44: return msg.toString();
45: }
46:
47: protected String getBackTrace(Throwable theThrown) {
48: StringWriter sw = new StringWriter();
49: PrintWriter pw = new PrintWriter(sw);
50: theThrown.printStackTrace(pw);
51: pw.close();
52: return sw.getBuffer().toString();
53: }
54: }
|