
com.devonfw.cobigen.cli.logger.CLILogger Maven / Gradle / Ivy
package com.devonfw.cobigen.cli.logger;
import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
import ch.qos.logback.classic.spi.ILoggingEvent;
import ch.qos.logback.core.ConsoleAppender;
/**
* This class declare layout logger and logger level
*/
public class CLILogger {
/**
* Getting logger instance from LoggerFactory for reset logger layout
*/
private static Logger rootLogger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
/**
* This method is setting the custom layout of logger
*
* @param verbose whether verbose logging should be enabled
*/
public static void layoutLogger(boolean verbose) {
LoggerContext loggerContext = rootLogger.getLoggerContext();
if (!verbose) {
loggerContext.reset();
}
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setContext(loggerContext);
encoder.setPattern("[%-5level] %message%n");
encoder.start();
ConsoleAppender appender = new ConsoleAppender<>();
appender.setContext(loggerContext);
appender.setEncoder(encoder);
appender.start();
if (rootLogger.getLevel() == null) {
rootLogger.setLevel(Level.INFO);
}
rootLogger.addAppender(appender);
}
/**
* This method declare level of logger
*
* @param level of logging
*/
public static void setLevel(Level level) {
rootLogger.setLevel(level);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy