package tc.oc.commons.core.logging; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.util.Map; import java.util.Properties; import java.util.logging.Level; import java.util.logging.Logger; public class LoggingConfig { private final Logger logger; public LoggingConfig() { this.logger = Logger.getLogger(""); load(); } public void load() { try { Logger.getLogger("").setLevel(Level.INFO); final Properties properties = new Properties(); try { properties.load(new FileInputStream("logging.properties")); } catch(FileNotFoundException ignored) {} for(Map.Entry<Object, Object> entry : properties.entrySet()) { String[] parts = entry.getKey().toString().split("\\."); if(parts.length == 2 && "level".equals(parts[1])) { String loggerName = parts[0]; String levelName = (String) entry.getValue(); if("root".equals(loggerName)) { loggerName = ""; } Logging.setDefaultLevel(loggerName, Level.parse(levelName)); } } Logging.updateFromLoggingProperties(); } catch(IOException | NoSuchFieldException | NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { logger.log(Level.WARNING, "Error applying logging config", e); } } }