001package com.nativelibs4java.velocity;
002
003import org.apache.velocity.runtime.RuntimeServices;
004import org.apache.velocity.runtime.log.LogChute;
005import 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 */
012public 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}