001 package railo.commons.io.log; 002 003 import java.io.PrintWriter; 004 005 import railo.commons.lang.SystemOut; 006 import railo.runtime.config.Config; 007 008 009 /** 010 * log for Console 011 */ 012 public final class LogConsole implements Log { 013 014 private static LogConsole[] singeltons=new LogConsole[Log.LEVEL_FATAL+1]; 015 /*{ 016 new LogConsole(Log.LEVEL_INFO), 017 new LogConsole(Log.LEVEL_DEBUG), 018 new LogConsole(Log.LEVEL_WARN), 019 new LogConsole(Log.LEVEL_ERROR), 020 new LogConsole(Log.LEVEL_FATAL) 021 };*/ 022 023 private int logLevel; 024 025 private PrintWriter writer; 026 027 public LogConsole(int logLevel, PrintWriter writer) { 028 this.logLevel=logLevel; 029 this.writer=writer; 030 } 031 032 public static LogConsole getInstance(Config config,int logLevel) { 033 if(singeltons[logLevel]==null) { 034 if(config==null || config.getOutWriter()==null) 035 return new LogConsole(logLevel,new PrintWriter(System.out)); 036 037 singeltons[logLevel]=new LogConsole(logLevel,config.getOutWriter()); 038 } 039 return singeltons[logLevel]; 040 } 041 042 @Override 043 public void log(int level, String application, String message) { 044 if(level>=logLevel)SystemOut.print(writer, LogUtil.getLine(level,application,message)); 045 } 046 047 @Override 048 public void info(String application, String message) { 049 log(LEVEL_INFO,application,message); 050 } 051 @Override 052 public void debug(String application, String message) { 053 log(LEVEL_DEBUG,application,message); 054 } 055 @Override 056 public void warn(String application, String message) { 057 log(LEVEL_WARN,application,message); 058 } 059 @Override 060 public void error(String application, String message) { 061 log(LEVEL_ERROR,application,message); 062 } 063 @Override 064 public void fatal(String application, String message) { 065 log(LEVEL_FATAL,application,message); 066 } 067 068 @Override 069 public int getLogLevel() { 070 return logLevel; 071 } 072 073 @Override 074 public void setLogLevel(int level) { 075 this.logLevel=level; 076 } 077 078 }