1 package org.simantics.logging;
5 import org.slf4j.Logger;
6 import org.slf4j.LoggerFactory;
8 import ch.qos.logback.classic.Level;
9 import ch.qos.logback.classic.LoggerContext;
12 * Class for modifying the active logging configuration
14 * @author Jani Simomaa
17 public final class LogConfigurator {
19 private static final Logger LOGGER = LoggerFactory.getLogger(LogConfigurator.class);
21 private LogConfigurator() {
25 * Sets logging level to represent the given argument
27 * @param level ERROR WARN INFO DEBUG TRACE
29 public static void setLoggingLevel(String level) {
30 if (LOGGER.isInfoEnabled())
31 LOGGER.info("Setting logger level to {}", level);
32 LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
33 Level ll = getLoggerLevel(level);
34 List<ch.qos.logback.classic.Logger> loggerList = context.getLoggerList();
35 loggerList.forEach(l -> l.setLevel(ll));
36 if (LOGGER.isDebugEnabled())
37 LOGGER.debug("Loggers installed {}", loggerList);
40 public static void setLoggingLevelForLogger(String logger, String level) {
41 if (LOGGER.isInfoEnabled())
42 LOGGER.info("Setting logger level to {} for loggers {}", level, logger);
43 LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
44 Level ll = getLoggerLevel(level);
45 ch.qos.logback.classic.Logger loggerList = context.getLogger(logger);
46 loggerList.setLevel(ll);
47 if (LOGGER.isDebugEnabled())
48 LOGGER.debug("Loggers installed {}", loggerList);
51 private static Level getLoggerLevel(String level) {
52 return Level.valueOf(level);