public String getLoggerLevel(LoggingMXBean logging, String name) { String level = logging.getLoggerLevel(name); if (level != null) { String parentLoggerName = logging.getParentLoggerName(name); // A level of "" means the level is not explicitly specified, i.e. inherited from the logger's parent. // In this case, we want to recurse, unless the logger's parent is "", which means this is already the // root logger (recursing in this ununsual case would cause infinite recursion). if (level.equals("") && parentLoggerName != null && !parentLoggerName.equals("")) { level = getLoggerLevel(logging, parentLoggerName); // recurse } } else { level = "Pseudo"; // only needed for the compare in updateResourceConfiguration() below } return level; }
/** * Set logger level * * @param loggerName the name of the logger * @param levelName the level to set */ public static void setLoggerLevel(String loggerName, String levelName) { loggingMXBean.setLoggerLevel(loggerName, levelName); String checkValue = loggingMXBean.getLoggerLevel(loggerName); if (!checkValue.equals(levelName)) { log.error("Could not set logger level for logger '" + loggerName + "' to '" + levelName + "', got '" + checkValue + "' instead"); } }
private String lookupLoggerLevel(String loggerName) { if (loggerName == null) { // check global and "" if (this.bean.getLoggerLevel("global").equals("")) { return this.bean.getLoggerLevel(""); } else { return this.bean.getLoggerLevel("global"); } } else { if (this.bean.getLoggerNames().contains(loggerName)) { String level = this.bean.getLoggerLevel(loggerName); if (level.equals("")) { // call again return lookupLoggerLevel(stripFqdn(loggerName)); } else { return level; } } else { // call again return lookupLoggerLevel(stripFqdn(loggerName)); } } }
out.println("logger: \""+logger+"\" level \""+LogManager.getLoggingMXBean().getLoggerLevel(logger)+"\"");
public String getLoggingReport() throws RuntimeException { try { StringBuilderNewLineAppender sb = new StringBuilderNewLineAppender(new StringBuilder()); LoggingMXBean lb = LogManager.getLoggingMXBean(); List<String> loggers = lb.getLoggerNames(); Collections.sort(loggers); String lf = System.getProperty("java.util.logging.config.file"); sb.append(sm.getString("logging.config.file", lf)); sb.append(sm.getString("reg.loggers", loggers.size())); sb.append(sm.getString("logger.details.1")); sb.append(sm.getString("logger.details.2")); sb.append(sm.getString("list.of.loggers")); sb.append("--------------------------------------------------"); for (String logger : loggers) { String ln = (logger == null) ? ANON_LOGGER : logger; String parent = lb.getParentLoggerName(logger); if (parent == null || parent.length() == 0) parent = ROOT_LOGGER; sb.append(ln + "|" + lb.getLoggerLevel(logger) + "|" + parent); } return (sb.toString()); } catch(Exception e) { throw new RuntimeException(e); } } }
for (String logger: loggers) { sb.append(INDENT1 + logger + ": level=" + loggingMXBean.getLoggerLevel(logger) + ", parent=" + loggingMXBean.getParentLoggerName(logger) + CRLF);