01: /*
02: This software is OSI Certified Open Source Software.
03: OSI Certified is a certification mark of the Open Source Initiative.
04:
05: The license (Mozilla version 1.0) can be read at the MMBase site.
06: See http://www.MMBase.org/license
07:
08: */
09:
10: package org.mmbase.util.logging.java;
11:
12: import org.mmbase.util.logging.*;
13: import java.util.logging.LogRecord;
14: import java.util.logging.Level;
15:
16: /**
17: * Since java 1.4 there is a Logger implemented in java itself, if you have code which requests a
18: * java.util.logging.Logger object to which it will log to, and you want it to log the MMBase logger
19: * then, you can offer it an instance of this class, which wraps an MMBase Logger object in a
20: * java.util.logging.Logger object.
21: *
22: * For the correspondence between levels of java logging and mmbase logging see javadoc of
23: * {@link org.mmbase.util.logging.java.Impl}.
24: *
25: * @author Michiel Meeuwissen
26: * @since MMBase-1.8
27: * @see org.mmbase.util.logging.java.Impl
28: */
29:
30: public class MMBaseLogger extends java.util.logging.Logger {
31:
32: Logger log = null;
33:
34: /**
35: * Instantiates a java Logger wich logs to the MMBase logger with category {@link java.util.logging.LogRecord#getLoggerName}.
36: */
37: public MMBaseLogger() {
38: super (null, null);
39: }
40:
41: /**
42: * Instantiated a java Logger wich logs to the given MMBase logger.
43: */
44: public MMBaseLogger(Logger log) {
45: super (null, null);
46: this .log = log;
47: }
48:
49: /**
50: * See {@link java.util.logging.Logger#log(LogRecord)}.
51: */
52: public void log(LogRecord record) {
53:
54: Logger l;
55: if (log == null) {
56: l = Logging.getLoggerInstance(record.getLoggerName());
57: } else {
58: l = log;
59: }
60:
61: String message = record.getMessage();
62: int level = record.getLevel().intValue();
63: if (level >= Level.SEVERE.intValue()) {
64: l.error(message);
65: } else if (level >= Level.WARNING.intValue()) {
66: l.warn(message);
67: } else if (level >= Level.INFO.intValue()) {
68: l.info(message);
69: } else if (level >= Level.CONFIG.intValue()) {
70: l.service(message);
71: } else if (level >= Level.FINE.intValue()) {
72: l.debug(message);
73: } else {
74: l.trace(message);
75: }
76: }
77:
78: }
|