001    package com.nativelibs4java.velocity;
002    
003    import org.apache.velocity.runtime.RuntimeServices;
004    import org.apache.velocity.runtime.log.LogChute;
005    import org.apache.maven.plugin.logging.Log;
006    
007    /**
008     * Yet another logging translator, this time going from:
009     * org.apache.velocity.runtime.log.LogChute to:
010     * org.apache.maven.plugin.logging.Log
011     */
012    public class MavenLogChute implements LogChute {
013    
014        private final Log log;
015    
016        public MavenLogChute(Log logger) {
017            this.log = logger;
018        }
019    
020        public void init(RuntimeServices arg0) throws Exception {
021        }
022    
023        public boolean isLevelEnabled(int lvl) {
024            return (lvl == DEBUG_ID && log.isDebugEnabled())
025                    || (lvl == INFO_ID && log.isInfoEnabled())
026                    || (lvl == WARN_ID && log.isWarnEnabled())
027                    || (lvl == ERROR_ID && log.isErrorEnabled());
028        }
029    
030        public void log(int lvl, String msg) {
031            if (isLevelEnabled(lvl)) {
032                switch (lvl) {
033                    case DEBUG_ID:
034                        log.debug(msg);
035                        break;
036                    case INFO_ID:
037                        log.info(msg);
038                        break;
039                    case WARN_ID:
040                        log.warn(msg);
041                        break;
042                    case ERROR_ID:
043                        log.error(msg);
044                        break;
045                    default:
046                }
047            }
048        }
049    
050        public void log(int lvl, String msg, Throwable t) {
051            if (isLevelEnabled(lvl)) {
052                switch (lvl) {
053                    case DEBUG_ID:
054                        log.debug(msg, t);
055                        break;
056                    case INFO_ID:
057                        log.info(msg, t);
058                        break;
059                    case WARN_ID:
060                        log.warn(msg, t);
061                        break;
062                    case ERROR_ID:
063                        log.error(msg, t);
064                        break;
065                    default:
066                }
067            }
068        }
069    }