001    package org.shiftone.jrat.util.log;
002    
003    
004    import org.shiftone.jrat.util.log.target.LogTarget;
005    
006    
007    /**
008     * Interface Log
009     *
010     * @author jeff@shiftone.org (Jeff Drost)
011     */
012    public class Logger implements LogTarget, Constants {
013    
014        private final LogTarget target;
015        private final String topic;
016    
017        Logger(String topic, LogTarget target) {
018            this.topic = topic;
019            this.target = target;
020        }
021    
022    
023        public static Logger getLogger(Class klass) {
024            return LoggerFactory.getLogger(klass);
025        }
026    
027    
028        public static Logger getLogger(String topic) {
029            return LoggerFactory.getLogger(topic);
030        }
031    
032    
033        public void log(String topic, int level, Object message, Throwable throwable) {
034            target.log(topic, level, message, throwable);
035        }
036    
037    
038        public boolean isLevelEnabled(String topic, int level) {
039            return (target != null) && target.isLevelEnabled(topic, level);
040        }
041    
042    
043        public boolean isLevelEnabled(int level) {
044            return isLevelEnabled(topic, level);
045        }
046    
047    
048        public boolean isInfoEnabled() {
049            return isLevelEnabled(Logger.LEVEL_INFO);
050        }
051    
052    
053        public boolean isDebugEnabled() {
054            return isLevelEnabled(Logger.LEVEL_DEBUG);
055        }
056    
057    
058        public boolean isTraceEnabled() {
059            return isLevelEnabled(Logger.LEVEL_TRACE);
060        }
061    
062    
063        public void trace(Object obj) {
064            log(topic, Logger.LEVEL_TRACE, obj, null);
065        }
066    
067    
068        public void debug(Object obj) {
069            log(topic, Logger.LEVEL_DEBUG, obj, null);
070        }
071    
072    
073        public void debug(Object obj, Throwable t) {
074            log(topic, Logger.LEVEL_DEBUG, obj, t);
075        }
076    
077    
078        public void info(Object obj) {
079            log(topic, Logger.LEVEL_INFO, obj, null);
080        }
081    
082    
083        public void info(Object obj, Throwable t) {
084            log(topic, Logger.LEVEL_INFO, obj, t);
085        }
086    
087    
088        public void warn(Object obj) {
089            log(topic, Logger.LEVEL_WARN, obj, null);
090        }
091    
092    
093        public void warn(Object obj, Throwable t) {
094            log(topic, Logger.LEVEL_WARN, obj, t);
095        }
096    
097    
098        public void error(Object obj) {
099            log(topic, Logger.LEVEL_ERROR, obj, null);
100        }
101    
102    
103        public void error(Object obj, Throwable t) {
104            log(topic, Logger.LEVEL_ERROR, obj, t);
105            t.printStackTrace(System.err);
106        }
107    
108    
109        public void fatal(Object obj) {
110            log(topic, Logger.LEVEL_FATAL, obj, null);
111        }
112    
113    
114        public void fatal(Object obj, Throwable t) {
115            log(topic, Logger.LEVEL_FATAL, obj, t);
116        }
117    }