]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.logging/src/org/simantics/logging/LogConfigurator.java
Logging configuration via SCL and UI & saving to ZIP-archive
[simantics/platform.git] / bundles / org.simantics.logging / src / org / simantics / logging / LogConfigurator.java
1 package org.simantics.logging;
2
3 import java.util.List;
4
5 import org.slf4j.Logger;
6 import org.slf4j.LoggerFactory;
7
8 import ch.qos.logback.classic.Level;
9 import ch.qos.logback.classic.LoggerContext;
10
11 /**
12  * Class for modifying the active logging configuration
13  * 
14  * @author Jani Simomaa
15  *
16  */
17 public final class LogConfigurator {
18
19     private static final Logger LOGGER = LoggerFactory.getLogger(LogConfigurator.class);
20
21     private LogConfigurator() {
22     }
23
24     /**
25      * Sets logging level to represent the given argument
26      * 
27      * @param level ERROR WARN INFO DEBUG TRACE
28      */
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);
38     }
39
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);
49     }
50
51     private static Level getLoggerLevel(String level) {
52         return Level.valueOf(level);
53     }
54 }