1 5 6 7 package com.raptus.owxv3; 8 9 10 import java.util.Hashtable ; 11 12 13 51 public class LoggingManager extends Object 52 { 53 54 55 61 public static final String PARAM_PREFIX = "LoggingManager."; 62 63 67 public static final String HANDLER_KEY = "LogHandler"; 68 69 72 public static final String VERBOSITY_KEY = "Verbosity"; 73 74 77 public static final String DEFAULT_HANDLER = "com.raptus.owxv3.TomcatLoggingManager"; 78 79 80 81 84 public static final int VERBOSITY_NOLOGS = 0; 85 86 89 public static final int VERBOSITY_ALL = 80; 90 91 94 public static final int VERBOSITY_NORMAL = 60; 95 96 99 public static final int VERBOSITY_DEBUG = 150; 100 101 104 public static final int VERBOSITY_DEBUG_ALL = 160; 105 106 107 108 112 public static final int IMPORTANCE_INFO = 5; 113 114 118 public static final int IMPORTANCE_NORMAL = 10; 119 120 124 public static final int IMPORTANCE_CRITICAL = 20; 125 126 129 public static final int IMPORTANCE_FATAL = 30; 130 131 134 public static final int IMPORTANCE_DEBUG = 100; 135 136 137 138 141 protected static LoggingManager _instance = null; 142 143 148 protected Hashtable myServletParams = null; 149 150 154 protected LoggingManagerIFace myLogger = null; 155 156 159 protected static int verbosityLevel = VERBOSITY_NORMAL; 160 161 164 protected static Hashtable levelNames; 165 166 167 168 174 private LoggingManager(Hashtable params) 175 { 176 this.myServletParams = params; 177 } 178 179 180 181 188 public static boolean setVerbosity(int level) 189 { 190 if(!isValidVerbosity(level)) 191 return false; 192 193 verbosityLevel=level; 194 return true; 195 } 196 197 202 public static int getVerbosity() 203 { 204 return verbosityLevel; 205 } 206 207 212 public static LoggingManager getInstance() 213 { 214 return _instance; 215 } 216 217 220 public LoggingManagerIFace getLogger() 221 { 222 return myLogger; 223 } 224 225 237 public static LoggingManager getInstance(Hashtable params) 238 { 239 if(_instance == null) 240 _instance = new LoggingManager(params); 241 242 if(!_instance.initialize()) 243 return null; 244 245 return _instance; 246 } 247 248 249 255 protected boolean initialize() 256 { 257 String handlerClass = null; 259 if(myServletParams != null) 260 handlerClass = (String ) myServletParams.get(PARAM_PREFIX + HANDLER_KEY); 261 262 if(handlerClass == null || handlerClass.length() == 0) 263 handlerClass = DEFAULT_HANDLER; 264 265 try 266 { 267 Class classObj = Class.forName(handlerClass); 268 if(classObj == null) 269 return false; 270 271 272 myLogger = (LoggingManagerIFace) classObj.newInstance(); 273 if(myLogger == null) 274 return false; 275 276 } 277 catch(Exception e) 278 { 279 282 return false; 283 } 284 285 if(myLogger.initialize(myServletParams) == false) 286 return false; 287 288 String verbosity = (String ) myServletParams.get(PARAM_PREFIX + VERBOSITY_KEY); 290 if(verbosity != null && verbosity.length() > 0) 291 { 292 try 293 { 294 verbosityLevel = new Integer (verbosity).intValue(); 295 } 296 catch(NumberFormatException e) 297 { 298 verbosityLevel = VERBOSITY_NORMAL; 299 } 300 301 if(!isValidVerbosity(verbosityLevel)) 302 verbosityLevel = VERBOSITY_NORMAL; 303 } 304 305 levelNames = new Hashtable (); 307 levelNames.put(new Integer (IMPORTANCE_INFO), "INFO"); 308 levelNames.put(new Integer (IMPORTANCE_NORMAL), "NORMAL"); 309 levelNames.put(new Integer (IMPORTANCE_CRITICAL), "CRITICAL"); 310 levelNames.put(new Integer (IMPORTANCE_FATAL), "FATAL"); 311 levelNames.put(new Integer (IMPORTANCE_DEBUG), "DEBUG"); 312 return true; 313 } 314 315 316 319 public static void log(String msg) 320 { 321 LoggingManager lm = LoggingManager.getInstance(); 323 lm.getLogger().log(msg); 324 } 325 326 329 public static void log(String msg, int level) 330 { 331 LoggingManager lm = LoggingManager.getInstance(); 333 lm.getLogger().log(msg, level); 334 } 335 336 339 public static void log(String msg, Object caller) 340 { 341 LoggingManager lm = LoggingManager.getInstance(); 343 lm.getLogger().log(msg, caller); 344 } 345 346 349 public static void log(String msg, Object caller, int level) 350 { 351 LoggingManager lm = LoggingManager.getInstance(); 353 lm.getLogger().log(msg, caller, level); 354 } 355 356 357 361 public static String getBelongingLevelName(int level) 362 { 363 return (String ) levelNames.get(new Integer (level)); 364 } 365 366 372 public static boolean isToLog(int level) 373 { 374 if(verbosityLevel == VERBOSITY_DEBUG_ALL) 375 return true; 376 377 else if(verbosityLevel == VERBOSITY_NOLOGS) 378 return false; 379 380 else if(verbosityLevel == VERBOSITY_DEBUG && level == IMPORTANCE_DEBUG) 381 return true; 382 383 else if(verbosityLevel == VERBOSITY_ALL && level < VERBOSITY_ALL) 384 return true; 385 386 else if(verbosityLevel == VERBOSITY_NORMAL && level < VERBOSITY_ALL && level >= IMPORTANCE_NORMAL) 387 return true; 388 389 return false; 390 } 391 392 398 public static boolean isValidVerbosity(int level) 399 { 400 return true; 401 } 402 } 403 | Popular Tags |