LoggerContext context = (LoggerContext)LoggerFactory.getILoggerFactory(); for (Logger logger : context.getLoggerList()) { for (Iterator<Appender<ILoggingEvent>> index = logger.iteratorForAppenders(); index.hasNext();) { Appender<ILoggingEvent> appender = index.next(); } }
public List<String> getLoggerList() { LoggerContext lc = (LoggerContext) context; List<String> strList = new ArrayList<String>(); Iterator<Logger> it = lc.getLoggerList().iterator(); while (it.hasNext()) { Logger log = it.next(); strList.add(log.getName()); } return strList; }
@Override public List<LoggerConfiguration> getLoggerConfigurations() { List<LoggerConfiguration> result = new ArrayList<>(); for (ch.qos.logback.classic.Logger logger : getLoggerContext().getLoggerList()) { result.add(getLoggerConfiguration(logger)); } result.sort(CONFIGURATION_COMPARATOR); return result; }
@Override public Map<String, Object> asJson() { LinkedHashMap<String, Object> json = new LinkedHashMap<>(); json.put("loc.config.dir", systemEnvironment.configDir().getAbsolutePath()); List<Logger> loggers = LOGGER_CONTEXT.getLoggerList(); Appender[] appenders = getAppenders(loggers); for (int i = 0; i < appenders.length; i++) { Appender appender = appenders[i]; if (!isFileAppender(appender)) { continue; } FileAppender fileAppender = (FileAppender) appender; File logFile = new File(fileAppender.rawFileProperty()); json.put("loc.log.root." + i, new File(logFile.getAbsolutePath()).getParent()); json.put("loc.log.basename." + i, logFile.getName()); } return json; }
private void propagateExistingLoggerLevels() { LoggerContext loggerContext = (LoggerContext) context; List<Logger> loggerList = loggerContext.getLoggerList(); for (Logger l : loggerList) { if (l.getLevel() != null) { propagate(l, l.getLevel()); } } }
/** * Retrieve all configured logback loggers. * * @param showAll If set return ALL loggers, not only the configured ones. * @return List of Loggers */ public static List<ch.qos.logback.classic.Logger> getLoggers(final boolean showAll) { final LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory(); final List<ch.qos.logback.classic.Logger> loggers = new ArrayList<ch.qos.logback.classic.Logger>(); for (ch.qos.logback.classic.Logger log : lc.getLoggerList()) { if(showAll == false) { if(log.getLevel() != null || LoggingUtil.hasAppenders(log)) { loggers.add(log); } } else { loggers.add(log); } } return loggers; }
public static Map<String, LoggerInfo> getLoggers(String name) { Map<String, LoggerInfo> appenders = new HashMap<String, LoggerInfo>(10); if (Logback) { LoggerContext loggerContext = (LoggerContext)lcObject; if (name != null && !"".equals(name.trim())) { Logger logger = loggerContext.exists(name); if (logger != null) { appenders.put(name, doGetLoggerInfo(logger)); } } else { // 获取所有logger时,如果没有appender则忽略 List<Logger> loggers = loggerContext.getLoggerList(); for (Logger logger : loggers) { LoggerInfo info = doGetLoggerInfo(logger); if (info.getAppenders() == null || !info.getAppenders().isEmpty()) { appenders.put(logger.getName(), info); } } } } return appenders; }
@SuppressFBWarnings("NP_BOOLEAN_RETURN_NULL") public static Boolean setDepth(int depth) { if (Logback) { if (depth == -1) { depth = Integer.MAX_VALUE; } try { LoggerContext loggerContext = (LoggerContext)lcObject; List<Logger> loggers = loggerContext.getLoggerList(); for (ch.qos.logback.classic.Logger logger : loggers) { Iterator<Appender<ILoggingEvent>> iter = logger.iteratorForAppenders(); doSetDepth(iter, depth); } } catch (Throwable t) { LogLog.error("failed to set depth for logback", t); return false; } LogLog.info("set logback throwable depth success, depth: " + depth); return true; } return null; }
@Test public void no_writing_to_sonar_log_file_when_running_from_sonar_script() { emulateRunFromSonarScript(); LoggerContext ctx = underTest.configure(); ctx.getLoggerList().forEach(AppLoggingTest::verifyNoFileAppender); }
@Test public void root_logger_writes_to_console_with_formatting_and_to_sonar_log_file_when_running_from_ITs() { emulateRunFromCommandLine(true); LoggerContext ctx = underTest.configure(); Logger rootLogger = ctx.getLogger(ROOT_LOGGER_NAME); verifyAppConsoleAppender(rootLogger.getAppender("APP_CONSOLE")); verifySonarLogFileAppender(rootLogger.getAppender("file_sonar")); assertThat(rootLogger.iteratorForAppenders()).hasSize(2); ctx.getLoggerList() .stream() .filter(logger -> !ROOT_LOGGER_NAME.equals(logger.getName())) .forEach(AppLoggingTest::verifyNoFileAppender); }
@Test public void root_logger_writes_to_console_with_formatting_and_to_sonar_log_file_when_running_from_command_line() { emulateRunFromCommandLine(false); LoggerContext ctx = underTest.configure(); Logger rootLogger = ctx.getLogger(ROOT_LOGGER_NAME); verifyAppConsoleAppender(rootLogger.getAppender("APP_CONSOLE")); verifySonarLogFileAppender(rootLogger.getAppender("file_sonar")); assertThat(rootLogger.iteratorForAppenders()).hasSize(2); // verify no other logger writes to sonar.log ctx.getLoggerList() .stream() .filter(logger -> !ROOT_LOGGER_NAME.equals(logger.getName())) .forEach(AppLoggingTest::verifyNoFileAppender); }
File clientLogFile; FileAppender<?> fileAppender = null; LoggerContext context = (LoggerContext)LoggerFactory.getILoggerFactory(); for (Logger logger : context.getLoggerList()) { for (Iterator<Appender<ILoggingEvent>> index = logger.iteratorForAppenders(); index.hasNext();) { Object enumElement = index.next(); if (enumElement instanceof FileAppender) { fileAppender=(FileAppender<?>)enumElement; } } } if (fileAppender != null) { clientLogFile=new File(fileAppender.getFile()); } else { clientLogFile = null; } Log.d("logfile path", clientLogFile.getAbsolutePath());
public List<String> getLoggerList() { LoggerContext lc = (LoggerContext) context; List<String> strList = new ArrayList<String>(); Iterator<Logger> it = lc.getLoggerList().iterator(); while (it.hasNext()) { Logger log = it.next(); strList.add(log.getName()); } return strList; }
public void updateLoggerLogLevel(String loggerName, String newLevel) { SixtLogbackContext.logger.info("Starting to update Logger's log level to {}", newLevel); List<ch.qos.logback.classic.Logger> loggers = ((LoggerContext) LoggerFactory.getILoggerFactory()).getLoggerList(); for (ch.qos.logback.classic.Logger logger : loggers) { String name = logger.getName(); Level level = logger.getLevel(); SixtLogbackContext.logger.debug("Logger [{}] has log level {}", name, level); if (name.equals(loggerName)) { logger.setLevel(Level.toLevel(newLevel)); SixtLogbackContext.logger.info("Affected Loggers were [{}] from {} to {}", logger, level, newLevel); return; // child loggers will be handled by logback itself } } }
for (Logger next : ((LoggerContext) LoggerFactory.getILoggerFactory()).getLoggerList()) { next.setLevel(Level.TRACE);
private void propagateExistingLoggerLevels() { LoggerContext loggerContext = (LoggerContext) context; List<Logger> loggerList = loggerContext.getLoggerList(); for (Logger l : loggerList) { if (l.getLevel() != null) { propagate(l, l.getLevel()); } } }
fileAppender.start(); for (ch.qos.logback.classic.Logger log : lc.getLoggerList()) { if (log.getLevel() != null) { log.addAppender(fileAppender);
fileAppender.start(); for (ch.qos.logback.classic.Logger log : lc.getLoggerList()) { if (log.getLevel() != null) { log.addAppender(fileAppender);
@PostConstruct public void updateMarkersFilter() { LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory(); for (Logger logger : context.getLoggerList()) { Iterator<Appender<ILoggingEvent>> appenderIterator = logger.iteratorForAppenders(); appenderIterator.forEachRemaining(x -> x.addFilter(this)); } }
private void propagateExistingLoggerLevels() { LoggerContext loggerContext = (LoggerContext) context; List<Logger> loggerList = loggerContext.getLoggerList(); for (Logger l : loggerList) { if (l.getLevel() != null) { propagate(l, l.getLevel()); } } }