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

org.tango.logging.DefaultTangoLoggingConfiguration Maven / Gradle / Ivy

There is a newer version: 10.0.0
Show newest version
package org.tango.logging;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.PatternLayout;
import ch.qos.logback.classic.joran.action.JMXConfiguratorAction;
import ch.qos.logback.classic.spi.Configurator;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.ConsoleAppender;
import ch.qos.logback.core.encoder.LayoutWrappingEncoder;
import ch.qos.logback.core.joran.spi.ActionException;
import ch.qos.logback.core.spi.ContextAwareBase;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.core.util.StatusPrinter;
import org.xml.sax.helpers.AttributesImpl;

public class DefaultTangoLoggingConfiguration extends ContextAwareBase implements Configurator {
    @Override
    public void configure(LoggerContext loggerContext) {

        addInfo("Setting up default configuration from ");

        ConsoleAppender ca = new ConsoleAppender();
        ca.setContext(loggerContext);
        ca.setName("console");
        LayoutWrappingEncoder encoder = new LayoutWrappingEncoder();
        encoder.setContext(loggerContext);

        PatternLayout layout = new PatternLayout();
        layout.setPattern("%-5level %d [%thread - %X{deviceName}] %logger{36}.%M:%L - %msg%n");

        layout.setContext(loggerContext);
        layout.start();
        encoder.setLayout(layout);

        ca.setEncoder(encoder);
        ca.start();

        JMXConfiguratorAction jmxConfiguratorAction = new JMXConfiguratorAction();
        jmxConfiguratorAction.setContext(loggerContext);
        try {
            jmxConfiguratorAction.begin(null, null, new AttributesImpl());
        } catch (ActionException e) {
            addError("The Logback JMX configuration failed", e);
        }

        Logger jacorbLogger = loggerContext.getLogger("org.jacorb");
        jacorbLogger.setLevel(Level.ERROR);

        Logger tangoLogger = loggerContext.getLogger("org.tango.server");
        tangoLogger.setLevel(Level.INFO);

        Logger rootLogger = loggerContext.getLogger(Logger.ROOT_LOGGER_NAME);
        rootLogger.setLevel(Level.ERROR);
        rootLogger.addAppender(ca);

        StatusPrinter.print(loggerContext);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy