source: trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/log4j/Log4JLogger.java @ 633

Last change on this file since 633 was 633, checked in by sherbold, 12 years ago
  • updated tracing API of the Console. It now supports different trace levels, based on java.util.logger.Level
  • Property svn:mime-type set to text/plain
File size: 2.9 KB
Line 
1package de.ugoe.cs.quest.log4j;
2
3import java.util.logging.Level;
4
5import org.apache.log4j.Logger;
6import org.apache.log4j.PropertyConfigurator;
7
8import de.ugoe.cs.util.console.Console;
9import de.ugoe.cs.util.console.listener.ICommandListener;
10import de.ugoe.cs.util.console.listener.IErrorListener;
11import de.ugoe.cs.util.console.listener.IExceptionListener;
12import de.ugoe.cs.util.console.listener.ITraceListener;
13
14/**
15 * <p>
16 * Implements logging based on the log4j API.
17 * </p>
18 *
19 * @author Steffen Herbold
20 * @version 1.0
21 */
22public class Log4JLogger implements IErrorListener, ITraceListener,
23                IExceptionListener, ICommandListener {
24
25        /**
26         * <p>
27         * Reference to the logger.
28         * </p>
29         */
30        Logger logger;
31
32        /**
33         * <p>
34         * Constructor. Creates a new Log4JLogger and registers the implemented
35         * listener with the {@link Console}.
36         * </p>
37         */
38        public Log4JLogger() {
39                PropertyConfigurator.configure("data/log4j.properties");
40                logger = Logger.getLogger("de.ugoe.cs.quest");
41                Console.getInstance().registerErrorListener(this);
42                Console.getInstance().registerTraceListener(this);
43                Console.getInstance().registerExceptionListener(this);
44                Console.getInstance().registerCommandListener(this);
45        }
46
47        /*
48         * (non-Javadoc)
49         *
50         * @see
51         * de.ugoe.cs.util.console.listener.ICommandListener#commandNotification
52         * (java.lang.String)
53         */
54        @Override
55        public void commandNotification(String command) {
56                logger.info("Command executed: " + command);
57        }
58
59        /*
60         * (non-Javadoc)
61         *
62         * @see
63         * de.ugoe.cs.util.console.listener.IExceptionListener#printStacktrace(java
64         * .lang.Exception)
65         */
66        @Override
67        public void logException(Exception e) {
68                logger.error("", e);
69        }
70
71        /*
72         * (non-Javadoc)
73         *
74         * @see
75         * de.ugoe.cs.util.console.listener.ITraceListener#traceMsg(java.lang.String
76         * )
77         */
78        @Override
79        public void traceMsg(String traceMessage, Level level) {
80            logger.log(convertToLog4JLevel(level), traceMessage);
81        }
82
83        /*
84         * (non-Javadoc)
85         *
86         * @see
87         * de.ugoe.cs.util.console.listener.IErrorListener#errorMsg(java.lang.String
88         * )
89         */
90        @Override
91        public void errorMsg(String errMessage) {
92                logger.error(errMessage);
93        }
94       
95        /**
96         * <p>
97         * Converts the log level described by {@link Level} into a {@link org.apache.log4j.Level}.
98         * </p>
99         *
100         * @param level java.util.logger.Level severity
101         * @return org.apache.log4j.Level severity
102         */
103        private org.apache.log4j.Level convertToLog4JLevel(Level level) {
104            if(level==Level.OFF) {
105                return org.apache.log4j.Level.OFF;
106            }
107            if(level==Level.SEVERE) {
108                return org.apache.log4j.Level.FATAL;
109            }
110            if(level==Level.WARNING) {
111                return org.apache.log4j.Level.WARN;
112            }
113            if(level==Level.INFO || level==Level.CONFIG) {
114                return org.apache.log4j.Level.INFO;
115            }
116            // remaining levels: FINE, FINER, FINEST, ALL
117            return org.apache.log4j.Level.ALL;
118        }
119}
Note: See TracBrowser for help on using the repository browser.