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 }