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        /**
043         * @see railo.commons.io.log.Log#log(int, java.lang.String, java.lang.String)
044         */
045        public void log(int level, String application, String message) {
046            if(level>=logLevel)SystemOut.print(writer, LogUtil.getLine(level,application,message));
047        }
048    
049        /**
050         * @see railo.commons.io.log.Log#info(java.lang.String, java.lang.String)
051         */
052        public void info(String application, String message) {
053            log(LEVEL_INFO,application,message);
054        }
055        /**
056         * @see railo.commons.io.log.Log#debug(java.lang.String, java.lang.String)
057         */
058        public void debug(String application, String message) {
059            log(LEVEL_DEBUG,application,message);    
060        }
061        /**
062         * @see railo.commons.io.log.Log#warn(java.lang.String, java.lang.String)
063         */
064        public void warn(String application, String message) {
065            log(LEVEL_WARN,application,message);
066        }
067        /**
068         * @see railo.commons.io.log.Log#error(java.lang.String, java.lang.String)
069         */
070        public void error(String application, String message) {
071            log(LEVEL_ERROR,application,message);
072        }
073        /**
074         * @see railo.commons.io.log.Log#fatal(java.lang.String, java.lang.String)
075         */
076        public void fatal(String application, String message) {
077            log(LEVEL_FATAL,application,message);
078        }
079    
080        /**
081         * @see railo.commons.io.log.Log#getLogLevel()
082         */
083        public int getLogLevel() {
084            return logLevel;
085        }
086    
087        /**
088         * @see railo.commons.io.log.Log#setLogLevel(int)
089         */
090        public void setLogLevel(int level) {
091            this.logLevel=level;
092        }
093    
094    }