Package halfpipe.logging

Source Code of halfpipe.logging.LogbackConfigurer

package halfpipe.logging;

import ch.qos.logback.classic.Level;
import org.slf4j.ILoggerFactory;
import org.slf4j.Logger;
import org.slf4j.impl.StaticLoggerBinder;
import org.springframework.util.StringUtils;

import javax.annotation.PostConstruct;
import javax.inject.Inject;

/**
* User: spencergibb
* Date: 4/9/14
* Time: 1:05 PM
*/
public class LogbackConfigurer {
    @Inject
    LoggingProperties properties;

    @Log Logger logger;

    @PostConstruct
    public void init() {
        logger.info("Setting rootLogger to {}", properties.getLevel());
        setLogLevel(null, properties.getLevel().get());

        for (String s: properties.getLoggers().get()) {
            //TODO: have conversion service do this
            LogbackEntry entry = LogbackEntry.valueOf(s);
            setLogLevel(entry.getName(), entry.getLevel());
        }
    }

    public void setLogLevel(String loggerName, Level level) {
        ILoggerFactory factory = StaticLoggerBinder.getSingleton().getLoggerFactory();
        Logger slf4jLogger = factory.getLogger(StringUtils.isEmpty(loggerName) ? Logger.ROOT_LOGGER_NAME : loggerName);
        ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger) slf4jLogger;
        logger.setLevel(level);
    }
}
TOP

Related Classes of halfpipe.logging.LogbackConfigurer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.