/** * Work around for bug 6935026. */ public List<String> getLoggerNames() { while (true) { try { List<String> r = new ArrayList<String>(); Enumeration<String> e = LogManager.getLogManager().getLoggerNames(); while (e.hasMoreElements()) r.add(e.nextElement()); return r; } catch (ConcurrentModificationException e) { // retry } } }
private List<String> getLoggerNames() { while (true) { try { return Collections.list(LogManager.getLogManager().getLoggerNames()); } catch (final ConcurrentModificationException e) { // retry // (issue 370 and http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6935026 ) continue; } } }
public void resetJULLevels() { LogManager lm = LogManager.getLogManager(); Enumeration<String> e = lm.getLoggerNames(); while (e.hasMoreElements()) { String loggerName = e.nextElement(); java.util.logging.Logger julLogger = lm.getLogger(loggerName); if (JULHelper.isRegularNonRootLogger(julLogger) && julLogger.getLevel() != null) { addInfo("Setting level of jul logger [" + loggerName + "] to null"); julLogger.setLevel(null); } } }
@Override public List<LoggerConfiguration> getLoggerConfigurations() { List<LoggerConfiguration> result = new ArrayList<>(); Enumeration<String> names = LogManager.getLogManager().getLoggerNames(); while (names.hasMoreElements()) { result.add(getLoggerConfiguration(names.nextElement())); } result.sort(CONFIGURATION_COMPARATOR); return Collections.unmodifiableList(result); }
@Restricted(NoExternalUse.class) public AutoCompletionCandidates doAutoCompleteLoggerName(@QueryParameter String value) { if (value == null) { return new AutoCompletionCandidates(); } // get names of all actual loggers known to Jenkins Set<String> candidateNames = new LinkedHashSet<>(getAutoCompletionCandidates(Collections.list(LogManager.getLogManager().getLoggerNames()))); for (String part : value.split("[ ]+")) { HashSet<String> partCandidates = new HashSet<>(); String lowercaseValue = part.toLowerCase(Locale.ENGLISH); for (String loggerName : candidateNames) { if (loggerName.toLowerCase(Locale.ENGLISH).contains(lowercaseValue)) { partCandidates.add(loggerName); } } candidateNames.retainAll(partCandidates); } AutoCompletionCandidates candidates = new AutoCompletionCandidates(); candidates.add(candidateNames.toArray(MemoryReductionUtil.EMPTY_STRING_ARRAY)); return candidates; }
public static void setGlobalLogLevel(Level targetLogLevel) { for (Enumeration<String> loggerNames = LogManager.getLogManager().getLoggerNames(); loggerNames.hasMoreElements(); ) { String loggerName = loggerNames.nextElement(); Logger logger = LogManager.getLogManager().getLogger(loggerName); if (logger != null) { logger.setLevel(targetLogLevel); } } for (Handler handler : Logger.getLogger("").getHandlers()) { handler.setLevel(targetLogLevel); } Logger.getLogger("").setLevel(targetLogLevel); // Make sure the unwanted loggers stay quiet disableUnwantedLoggers(); }
/** * Retrieves a list of root loggers. * * @return list of root loggers. */ private Set<Logger> getRootLoggers() { final LogManager logManager = LogManager.getLogManager(); final Enumeration<String> loggerNames = logManager.getLoggerNames(); final Set<Logger> rootLoggers = new HashSet<>(); while (loggerNames.hasMoreElements()) { Logger logger = logManager.getLogger(loggerNames.nextElement()); if (logger != null) { while (logger.getParent() != null) { logger = logger.getParent(); } rootLoggers.add(logger); } } return rootLoggers; }
/** * Reset configuration. * * <p>All handlers are closed and removed from any named loggers. All loggers' * level is set to null, except the root logger's level is set to * {@code Level.INFO}. */ public synchronized void reset() { checkAccess(); props = new Properties(); Enumeration<String> names = getLoggerNames(); while (names.hasMoreElements()) { String name = names.nextElement(); Logger logger = getLogger(name); if (logger != null) { logger.reset(); } } Logger root = loggers.get(""); if (root != null) { root.setLevel(Level.INFO); } }
Enumeration<String> loggerNames = logManager.getLoggerNames();
@Test public void headlessModeShouldRedirectBothJDKAndGFSHLoggers() { gfsh = new Gfsh(false, null, new GfshConfig()); LogManager logManager = LogManager.getLogManager(); Enumeration<String> loggerNames = logManager.getLoggerNames(); while (loggerNames.hasMoreElements()) { String loggerName = loggerNames.nextElement(); Logger logger = logManager.getLogger(loggerName); // make sure jdk's logging goes to the gfsh log file if (loggerName.startsWith("java")) { assertThat(logger.getParent().getName()).endsWith("LogWrapper"); } // make sure Gfsh's logging goes to the gfsh log file else if (loggerName.endsWith(".Gfsh")) { assertThat(logger.getParent().getName()).endsWith("LogWrapper"); } // make sure SimpleParser's logging will still show up in the console else if (loggerName.endsWith(".SimpleParser")) { assertThat(logger.getParent().getName()).doesNotEndWith("LogWrapper"); } } } }
@Test public void consoleModeShouldRedirectOnlyJDKLoggers() { gfsh = new Gfsh(true, null, new GfshConfig()); LogManager logManager = LogManager.getLogManager(); Enumeration<String> loggerNames = logManager.getLoggerNames(); // when initialized in console mode, all log messages will show up in console // initially. so that we see messages when "start locator", "start server" command // are executed. Only after connection, JDK's logging is turned off while (loggerNames.hasMoreElements()) { String loggerName = loggerNames.nextElement(); Logger logger = logManager.getLogger(loggerName); // make sure jdk's logging goes to the gfsh log file if (loggerName.startsWith("java")) { assertThat(logger.getParent().getName()).endsWith("LogWrapper"); } // make sure Gfsh's logging goes to the gfsh log file else if (loggerName.endsWith(".Gfsh")) { assertThat(logger.getParent().getName()).doesNotEndWith("LogWrapper"); } // make sure SimpleParser's logging will still show up in the console else if (loggerName.endsWith(".SimpleParser")) { assertThat(logger.getParent().getName()).doesNotEndWith("LogWrapper"); } } } }
public void resetJULLevels() { LogManager lm = LogManager.getLogManager(); Enumeration e = lm.getLoggerNames(); while (e.hasMoreElements()) { String loggerName = (String) e.nextElement(); java.util.logging.Logger julLogger = lm.getLogger(loggerName); if (JULHelper.isRegularNonRootLogger(julLogger) && julLogger.getLevel() != null) { addInfo("Setting level of jul logger [" + loggerName + "] to null"); julLogger.setLevel(null); } } }
/** * Replaces all LogManager.getLoggerNames() calls, deleting the thread specific * prefix which is appended to all logger names in dev mode in order to * maintain a pseudo tree of loggers for each thread. Also deletes all logger * names that do not start with the prefix since those belong to the server * and should not be returned in this function. */ public static Enumeration<String> logManagerGetLoggerNames(LogManager manager) { Enumeration<String> loggerList = manager.getLoggerNames(); List<String> newList = new ArrayList<String>(); while (loggerList.hasMoreElements()) { String name = loggerList.nextElement(); if (startsWithLoggerPrefix(name)) { newList.add(removeLoggerPrefix(name)); } } return Collections.enumeration(newList); }
.list(logManager.getLoggerNames()); for (final String loggerName: loggerNames)
.list(logManager.getLoggerNames()); for (final String loggerName: loggerNames)
private List<String> getLoggerNames() { while (true) { try { return Collections.list(LogManager.getLogManager().getLoggerNames()); } catch (final ConcurrentModificationException e) { // retry // (issue 370 and http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6935026 ) continue; } } }
private void addExceptionRecorder() { Enumeration<String> names = LogManager.getLogManager().getLoggerNames(); while (names.hasMoreElements()) { String loggerName = names.nextElement(); Logger logger = LogManager.getLogManager().getLogger(loggerName); if (logger == null) continue; logger.addHandler(exceptionRecordingHandler); } } }
@Restricted(NoExternalUse.class) public AutoCompletionCandidates doAutoCompleteLoggerName(@QueryParameter String value) { AutoCompletionCandidates candidates = new AutoCompletionCandidates(); Enumeration<String> loggerNames = LogManager.getLogManager().getLoggerNames(); while (loggerNames.hasMoreElements()) { String loggerName = loggerNames.nextElement(); if (loggerName.toLowerCase(Locale.ENGLISH).contains(value.toLowerCase(Locale.ENGLISH))) { candidates.add(loggerName); } } return candidates; }
public void resetJULLevels() { LogManager lm = LogManager.getLogManager(); Enumeration<String> e = lm.getLoggerNames(); while (e.hasMoreElements()) { String loggerName = e.nextElement(); java.util.logging.Logger julLogger = lm.getLogger(loggerName); if (JULHelper.isRegularNonRootLogger(julLogger) && julLogger.getLevel() != null) { addInfo("Setting level of jul logger [" + loggerName + "] to null"); julLogger.setLevel(null); } } }
public void resetJULLevels() { LogManager lm = LogManager.getLogManager(); Enumeration<String> e = lm.getLoggerNames(); while (e.hasMoreElements()) { String loggerName = e.nextElement(); java.util.logging.Logger julLogger = lm.getLogger(loggerName); if (JULHelper.isRegularNonRootLogger(julLogger) && julLogger.getLevel() != null) { addInfo("Setting level of jul logger [" + loggerName + "] to null"); julLogger.setLevel(null); } } }