All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.devonfw.cobigen.tempeng.velocity.log.LogChuteDelegate Maven / Gradle / Ivy

package com.devonfw.cobigen.tempeng.velocity.log;

import org.apache.velocity.runtime.RuntimeServices;
import org.apache.velocity.runtime.log.LogChute;
import org.slf4j.Logger;

/**
 * A wrapper for the {@link org.slf4j.Logger} implementing {@link LogChute}. Provides log output during the
 * {@link org.apache.velocity.app.VelocityEngine} execution
 */
public class LogChuteDelegate implements LogChute {

    /**
     * The Logger instance
     */
    private final Logger log;

    /**
     * @param log
     *            an already instantiated {@link Logger}
     */
    public LogChuteDelegate(Logger log) {
        this.log = log;
    }

    @Override
    public void init(RuntimeServices runtimeServices) throws Exception {
        log.debug("Logger initialized with ignored RuntimeServices: {}", runtimeServices.getConfiguration().toString());
    }

    @Override
    public boolean isLevelEnabled(int logLevel) {
        switch (logLevel) {
        case LogChute.DEBUG_ID:
            return log.isDebugEnabled();
        case LogChute.ERROR_ID:
            return log.isErrorEnabled();
        case LogChute.INFO_ID:
            return log.isInfoEnabled();
        case LogChute.TRACE_ID:
            return log.isTraceEnabled();
        case LogChute.WARN_ID:
            return log.isWarnEnabled();
        }
        return false;
    }

    @Override
    public void log(int logLevel, String message) {
        switch (logLevel) {
        case LogChute.DEBUG_ID:
            log.debug(message);
            return;
        case LogChute.ERROR_ID:
            log.error(message);
            return;
        case LogChute.INFO_ID:
            log.info(message);
            return;
        case LogChute.TRACE_ID:
            log.trace(message);
            return;
        case LogChute.WARN_ID:
            log.warn(message);
            return;
        default:
            log.warn("Unsupported log level {}:{}", logLevel, message);
        }

    }

    @Override
    public void log(int logLevel, String message, Throwable throwable) {
        switch (logLevel) {
        case LogChute.DEBUG_ID:
            log.debug(message, throwable);
            return;
        case LogChute.ERROR_ID:
            log.error(message, throwable);
            return;
        case LogChute.INFO_ID:
            log.info(message, throwable);
            return;
        case LogChute.TRACE_ID:
            log.trace(message, throwable);
            return;
        case LogChute.WARN_ID:
            log.warn(message, throwable);
            return;
        default:
            log.warn("Unsupported log level {}\n{}\nthrows\n{}", logLevel, message, throwable.toString());
        }

    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy