1 58 package org.krysalis.barcode.cli; 59 60 import java.io.PrintStream ; 61 62 import org.apache.avalon.framework.logger.Logger; 63 64 70 public class AdvancedConsoleLogger implements Logger { 71 72 73 public static final int LEVEL_DEBUG = 0; 74 75 76 public static final int LEVEL_INFO = 1; 77 78 79 public static final int LEVEL_WARN = 2; 80 81 82 public static final int LEVEL_ERROR = 3; 83 84 85 public static final int LEVEL_FATAL = 4; 86 87 88 public static final int LEVEL_DISABLED = 5; 89 90 private static final String [] LEVEL_STRINGS = 91 {"[DEBUG] ", "[INFO] ", "[WARN] ", "[ERROR] ", "[FATAL] "}; 92 93 94 private int logLevel; 95 96 private boolean prefix; 97 98 private PrintStream out; 99 private PrintStream err; 100 101 108 public AdvancedConsoleLogger(int logLevel, boolean prefix, PrintStream out, PrintStream err) { 109 this.logLevel = logLevel; 110 this.prefix = prefix; 111 this.out = out; 112 this.err = err; 113 } 114 115 118 public AdvancedConsoleLogger() { 119 this(LEVEL_DEBUG, true, System.out, System.err); 120 } 121 122 private void logMessage(String msg, Throwable t, int logLevel) { 123 if (logLevel >= this.logLevel) { 124 PrintStream stream = (logLevel >= LEVEL_ERROR ? err : out); 125 if (prefix) { 126 stream.print(LEVEL_STRINGS[logLevel]); 127 } 128 stream.println(msg); 129 130 if (t != null) { 131 t.printStackTrace(stream); 132 } 133 } 134 } 135 136 139 public void debug(String msg) { 140 debug(msg, null); 141 } 142 143 146 public void debug(String msg, Throwable t) { 147 logMessage(msg, t, LEVEL_DEBUG); 148 } 149 150 153 public boolean isDebugEnabled() { 154 return (logLevel <= LEVEL_DEBUG); 155 } 156 157 160 public void info(String msg) { 161 info(msg, null); 162 } 163 164 167 public void info(String msg, Throwable t) { 168 logMessage(msg, t, LEVEL_INFO); 169 } 170 171 174 public boolean isInfoEnabled() { 175 return (logLevel <= LEVEL_INFO); 176 } 177 178 181 public void warn(String msg) { 182 warn(msg, null); 183 } 184 185 188 public void warn(String msg, Throwable t) { 189 logMessage(msg, t, LEVEL_WARN); 190 } 191 192 195 public boolean isWarnEnabled() { 196 return (logLevel <= LEVEL_WARN); 197 } 198 199 202 public void error(String msg) { 203 error(msg, null); 204 } 205 206 209 public void error(String msg, Throwable t) { 210 logMessage(msg, t, LEVEL_ERROR); 211 } 212 213 216 public boolean isErrorEnabled() { 217 return (logLevel <= LEVEL_ERROR); 218 } 219 220 223 public void fatalError(String msg) { 224 fatalError(msg, null); 225 } 226 227 230 public void fatalError(String msg, Throwable t) { 231 logMessage(msg, t, LEVEL_FATAL); 232 } 233 234 237 public boolean isFatalErrorEnabled() { 238 return (logLevel <= LEVEL_FATAL); 239 } 240 241 244 public Logger getChildLogger(String name) { 245 return this; 246 } 247 248 } 249 | Popular Tags |