01: //The contents of this file are subject to the Mozilla Public License Version 1.1
02: //(the "License"); you may not use this file except in compliance with the
03: //License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
04: //
05: //Software distributed under the License is distributed on an "AS IS" basis,
06: //WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
07: //for the specific language governing rights and
08: //limitations under the License.
09: //
10: //The Original Code is "The Columba Project"
11: //
12: //The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
13: //Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
14: //
15: //All Rights Reserved.
16: package org.columba.core.logging;
17:
18: import java.text.SimpleDateFormat;
19: import java.util.Date;
20: import java.util.logging.Formatter;
21: import java.util.logging.LogRecord;
22:
23: /**
24: * DebugFormatter is a LogFormatter for the Java.util.logging logging framework.
25: * Using this class outputs a oneline log that looks like this:
26: * "01/12/2002 22:00 [Classname.Methoname()] MESSAGE"
27: *
28: * @author redsolo
29: */
30: public class DebugFormatter extends Formatter {
31:
32: private static final SimpleDateFormat DATE_FORMATTER = new SimpleDateFormat(
33: "dd/MM/yyyy kk:mm:ss");
34:
35: /**
36: * Format the given log record and return the formatted string.
37: *
38: * @param record the log record to be formatted
39: * @return the formatted log record
40: */
41: public String format(LogRecord record) {
42: StringBuffer string = new StringBuffer();
43:
44: String className = record.getSourceClassName();
45: if (className != null) {
46: int lastPos = className.lastIndexOf('.');
47: if (lastPos != -1) {
48: className = className.substring(lastPos + 1);
49: }
50: } else {
51: className = "unknown";
52: }
53:
54: string.append(DATE_FORMATTER
55: .format(new Date(record.getMillis())));
56: string.append(" [");
57: string.append(className);
58: string.append(".");
59: string.append(record.getSourceMethodName());
60:
61: string.append("()] ");
62: string.append(record.getMessage());
63: string.append("\n");
64:
65: return string.toString();
66: }
67: }
|