001/**
002 *
003 * Copyright (c) 2014, the Railo Company Ltd. All rights reserved.
004 *
005 * This library is free software; you can redistribute it and/or
006 * modify it under the terms of the GNU Lesser General Public
007 * License as published by the Free Software Foundation; either 
008 * version 2.1 of the License, or (at your option) any later version.
009 * 
010 * This library is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
013 * Lesser General Public License for more details.
014 * 
015 * You should have received a copy of the GNU Lesser General Public 
016 * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
017 * 
018 **/
019package lucee.commons.io.log.sl4j;
020
021
022import lucee.commons.io.log.Log;
023import lucee.commons.io.log.LogUtil;
024import lucee.runtime.op.Caster;
025
026import org.slf4j.Marker;
027import org.slf4j.helpers.MarkerIgnoringBase;
028import org.slf4j.spi.LocationAwareLogger;
029
030public final class LoggerAdapterImpl extends MarkerIgnoringBase implements LocationAwareLogger {
031
032        private static final long serialVersionUID = 3875268250734654111L;
033        
034        private Log logger;
035        private String _name;
036
037        public LoggerAdapterImpl(Log logger, String name){
038                this.logger=logger;
039                this._name=name;
040        }
041        
042        public void debug(String msg) {log(Log.LEVEL_DEBUG,msg);}
043        public void error(String msg) {log(Log.LEVEL_ERROR,msg);}
044        public void info(String msg) {log(Log.LEVEL_INFO,msg);}
045        public void trace(String msg) {}
046        public void warn(String msg) {log(Log.LEVEL_WARN,msg);}
047
048        public void debug(String format, Object arg) {log(Log.LEVEL_DEBUG,format,arg);}
049        public void error(String format, Object arg) {log(Log.LEVEL_ERROR,format,arg);}
050        public void info(String format, Object arg) {log(Log.LEVEL_INFO,format,arg);}
051        public void trace(String format, Object arg) {}
052        public void warn(String format, Object arg) {log(Log.LEVEL_WARN,format,arg);}
053
054        public void debug(String format, Object arg1, Object arg2) {log(Log.LEVEL_DEBUG,format,arg1,arg2);}
055        public void error(String format, Object arg1, Object arg2) {log(Log.LEVEL_DEBUG,format,arg1,arg2);}
056        public void info(String format, Object arg1, Object arg2) {log(Log.LEVEL_DEBUG,format,arg1,arg2);}
057        public void trace(String format, Object arg1, Object arg2) {}
058        public void warn(String format, Object arg1, Object arg2) {log(Log.LEVEL_DEBUG,format,arg1,arg2);}
059
060        public void debug(String format, Object[] args) {log(Log.LEVEL_DEBUG,format,args);}
061        public void error(String format, Object[] args) {log(Log.LEVEL_DEBUG,format,args);}
062        public void info(String format, Object[] args) {log(Log.LEVEL_DEBUG,format,args);}
063        public void trace(String format, Object[] args) {}
064        public void warn(String format, Object[] args) {log(Log.LEVEL_DEBUG,format,args);}
065        
066        public void debug(String msg, Throwable t) {log(Log.LEVEL_DEBUG,msg,t);}
067        public void error(String msg, Throwable t) {log(Log.LEVEL_DEBUG,msg,t);}
068        public void info(String msg, Throwable t) {log(Log.LEVEL_DEBUG,msg,t);}
069        public void trace(String msg, Throwable t) {}
070        public void warn(String msg, Throwable t) {log(Log.LEVEL_DEBUG,msg,t);}
071        
072        private void log(int level, String msg) {
073                logger.log(level, _name, msg);
074        }
075        private void log(int level, String msg, Throwable t) {
076                LogUtil.log(logger,level, _name, msg,t);
077        }
078        
079        private void log(int level, String format, Object arg) {
080                log(level, Caster.toString(arg,""));
081        }
082        private void log(int level, String format, Object arg1, Object arg2) {
083                log(level, Caster.toString(arg1,"")+"\n"+Caster.toString(arg2,""));
084        }
085        private void log(int level, String format, Object[] args) {
086                StringBuilder sb=new StringBuilder();
087                for(int i=0;i<args.length;i++){
088                        sb.append(Caster.toString(args[i],""));
089                        sb.append("\n");
090                }
091                log(level, sb.toString().trim());
092        }
093
094        
095
096
097
098
099
100
101
102
103
104
105
106
107
108
109        public boolean isDebugEnabled() {
110                return logger.getLogLevel()<=Log.LEVEL_DEBUG;
111        }
112
113        public boolean isErrorEnabled() {
114                return logger.getLogLevel()<=Log.LEVEL_ERROR;
115        }
116
117        public boolean isInfoEnabled() {
118                return logger.getLogLevel()<=Log.LEVEL_INFO;
119        }
120
121        public boolean isTraceEnabled() {
122                return false;
123        }
124
125        public boolean isWarnEnabled() {
126                return logger.getLogLevel()<=Log.LEVEL_WARN;
127        }
128
129
130
131
132
133
134
135
136
137
138
139        public void log(Marker marker, String arg1, int arg2, String arg3,Throwable arg4) {
140                // log(level, Caster.toString(arg1,"")+"\n"+Caster.toString(arg2,"")+"\n"+Caster.toString(arg3,""));
141        }
142
143        public void log(Marker arg0, String arg1, int arg2, String arg3,
144                        Object[] arg4, Throwable arg5) {
145                // TODO Auto-generated method stub
146                
147        }
148  
149}