ch.qos.logback.classic.Logger.iteratorForAppenders()方法的使用及代码示例

x33g5p2x  于2022-01-23 转载在 其他  
字(11.7k)|赞(0)|评价(0)|浏览(219)

本文整理了Java中ch.qos.logback.classic.Logger.iteratorForAppenders()方法的一些代码示例,展示了Logger.iteratorForAppenders()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Logger.iteratorForAppenders()方法的具体详情如下:
包路径:ch.qos.logback.classic.Logger
类名称:Logger
方法名:iteratorForAppenders

Logger.iteratorForAppenders介绍

暂无

代码示例

代码示例来源:origin: gocd/gocd

  1. private Appender[] getAppenders(List<Logger> loggers) {
  2. LinkedHashSet<Appender<ILoggingEvent>> appenders = new LinkedHashSet<>();
  3. for (Logger logger : loggers) {
  4. Iterator<Appender<ILoggingEvent>> appenderIterator = logger.iteratorForAppenders();
  5. while (appenderIterator.hasNext()) {
  6. Appender<ILoggingEvent> appender = appenderIterator.next();
  7. appenders.add(appender);
  8. }
  9. }
  10. return appenders.toArray(new Appender[0]);
  11. }

代码示例来源:origin: bwssytems/ha-bridge

  1. /**
  2. * Test whether the provided logger has appenders.
  3. *
  4. * @param logger The logger to test
  5. * @return true if the logger has appenders.
  6. */
  7. public static boolean hasAppenders(ch.qos.logback.classic.Logger logger) {
  8. Iterator<Appender<ILoggingEvent>> it = logger.iteratorForAppenders();
  9. return it.hasNext();
  10. }

代码示例来源:origin: alibaba/nacos

  1. @Override
  2. public void activateAppender(Logger logger) {
  3. if (!(logger.getDelegate() instanceof ch.qos.logback.classic.Logger)) {
  4. throw new IllegalArgumentException(
  5. "logger must be ch.qos.logback.classic.Logger, but it's " + logger.getDelegate().getClass());
  6. }
  7. this.logger.detachAndStopAllAppenders();
  8. Iterator<ch.qos.logback.core.Appender<ILoggingEvent>> iter = ((ch.qos.logback.classic.Logger)logger
  9. .getDelegate()).iteratorForAppenders();
  10. while (iter.hasNext()) {
  11. ch.qos.logback.core.Appender<ILoggingEvent> appender = iter.next();
  12. this.logger.addAppender(appender);
  13. }
  14. }

代码示例来源:origin: alibaba/jstorm

  1. logbackLogger.iteratorForAppenders(); index.hasNext(); ) {
  2. ch.qos.logback.core.Appender<ch.qos.logback.classic.spi.ILoggingEvent> appender = index.next();
  3. if (appender instanceof ch.qos.logback.core.FileAppender) {

代码示例来源:origin: bwssytems/ha-bridge

  1. /**
  2. * Get the log file.
  3. *
  4. * @param logFileName The name of the log file
  5. * @return The actual file
  6. */
  7. public static File getLogFile(final String logFileName) {
  8. if (logFileName == null) {
  9. throw new IllegalArgumentException("logFileName cannot be null.");
  10. }
  11. final LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
  12. final Logger logger = lc.getLogger(Logger.ROOT_LOGGER_NAME);
  13. final Iterator<Appender<ILoggingEvent>> it = logger.iteratorForAppenders();
  14. while (it.hasNext()) {
  15. final Appender<ILoggingEvent> appender = it.next();
  16. if (appender instanceof FileAppender) {
  17. final FileAppender<ILoggingEvent> fileAppender = (FileAppender<ILoggingEvent>) appender;
  18. final File logFile = new File(fileAppender.getFile());
  19. if (logFile.getName().equalsIgnoreCase(logFileName)) {
  20. return logFile;
  21. }
  22. }
  23. }
  24. return null;
  25. }

代码示例来源:origin: dropwizard/dropwizard

  1. @Override
  2. public void stop() {
  3. // Should acquire the lock to avoid concurrent listener changes
  4. CHANGE_LOGGER_CONTEXT_LOCK.lock();
  5. try {
  6. // We need to go through a list of appenders and locate the async ones,
  7. // as those could have messages left to write. Since there is no flushing
  8. // mechanism built into logback, we wait for a short period of time before
  9. // giving up that the appender will be completely flushed.
  10. final Logger logger = loggerContext.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
  11. final List<Appender<ILoggingEvent>> appenders = Lists.of(logger.iteratorForAppenders());
  12. for (Appender<ILoggingEvent> appender : appenders) {
  13. if (appender instanceof AsyncAppenderBase) {
  14. flushAppender((AsyncAppenderBase<?>) appender);
  15. } else if (appender instanceof AsyncAppenderBaseProxy) {
  16. flushAppender(((AsyncAppenderBaseProxy<?>) appender).getAppender());
  17. }
  18. }
  19. } catch (InterruptedException ignored) {
  20. // If the thread waiting for the logs to be flushed is aborted then
  21. // user clearly wants the application to quit now, so stop trying
  22. // to flush any appenders
  23. Thread.currentThread().interrupt();
  24. } finally {
  25. CHANGE_LOGGER_CONTEXT_LOCK.unlock();
  26. }
  27. }

代码示例来源:origin: bwssytems/ha-bridge

  1. /**
  2. * Get the logfile information for the roor logger.
  3. *
  4. * @return List of LogFileInfo obejcts
  5. */
  6. public static List<LogFileInfo> getLogFileInfos() {
  7. final LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
  8. final List<LogFileInfo> logFileInfos = new ArrayList<LogFileInfo>();
  9. final Logger logger = lc.getLogger(Logger.ROOT_LOGGER_NAME);
  10. final Iterator<Appender<ILoggingEvent>> it = logger.iteratorForAppenders();
  11. while (it.hasNext()) {
  12. final Appender<ILoggingEvent> appender = it.next();
  13. if (appender instanceof FileAppender) {
  14. final FileAppender<ILoggingEvent> fileAppender = (FileAppender<ILoggingEvent>) appender;
  15. final File logFile = new File(fileAppender.getFile());
  16. final LogFileInfo logFileInfo = new LogFileInfo();
  17. logFileInfo.setFileName(logFile.getName());
  18. logFileInfo.setFileLastChanged(new Date(logFile.lastModified()));
  19. logFileInfo.setFileSize(logFile.length());
  20. logFileInfos.add(logFileInfo);
  21. }
  22. }
  23. return logFileInfos;
  24. }

代码示例来源:origin: SonarSource/sonarqube

  1. private static void verifyNoFileAppender(Logger logger) {
  2. Iterator<Appender<ILoggingEvent>> iterator = logger.iteratorForAppenders();
  3. while (iterator.hasNext()) {
  4. assertThat(iterator.next()).isNotInstanceOf(FileAppender.class);
  5. }
  6. }

代码示例来源:origin: alibaba/nacos

  1. /**
  2. * When prudent is set to true, file appenders from multiple JVMs can safely write to the same file.
  3. * <p>
  4. * Only support by logback
  5. *
  6. * @param prudent
  7. * @since 0.1.8
  8. */
  9. public static void activePrudent(Logger logger, boolean prudent) {
  10. if (logger != null && logger.getDelegate() != null) {
  11. if (!(logger.getDelegate() instanceof ch.qos.logback.classic.Logger)) {
  12. throw new IllegalArgumentException("logger must be ch.qos.logback.classic.Logger, but it's "
  13. + logger.getDelegate().getClass());
  14. }
  15. Iterator<Appender<ILoggingEvent>> iter = ((ch.qos.logback.classic.Logger)logger.getDelegate())
  16. .iteratorForAppenders();
  17. while (iter.hasNext()) {
  18. ch.qos.logback.core.Appender<ILoggingEvent> appender = iter.next();
  19. if (appender instanceof FileAppender) {
  20. ((FileAppender)appender).setPrudent(prudent);
  21. } else {
  22. continue;
  23. }
  24. }
  25. }
  26. }
  27. }

代码示例来源:origin: alibaba/nacos

  1. @Override
  2. public void activateAsync(List<Object[]> args) {
  3. AsyncAppender asynAppender = new AsyncAppender();
  4. invokeMethod(asynAppender, args);
  5. asynAppender.setName(productName + "." + logger.getName() + ".AsyncAppender");
  6. asynAppender.setContext(LogbackLoggerContextUtil.getLoggerContext());
  7. Iterator<Appender<ILoggingEvent>> iterator = logger.iteratorForAppenders();
  8. boolean hasAppender = false;
  9. while (iterator.hasNext()) {
  10. hasAppender = true;
  11. asynAppender.addAppender(iterator.next());
  12. }
  13. if (!hasAppender) {
  14. throw new IllegalStateException("Activate async appender failed, no appender exist.");
  15. }
  16. asynAppender.start();
  17. iterator = logger.iteratorForAppenders();
  18. while (iterator.hasNext()) {
  19. logger.detachAppender(iterator.next());
  20. }
  21. logger.addAppender(asynAppender);
  22. setProductName(productName);
  23. }

代码示例来源:origin: alibaba/nacos

  1. @SuppressFBWarnings("NP_BOOLEAN_RETURN_NULL")
  2. public static Boolean setDepth(int depth) {
  3. if (Logback) {
  4. if (depth == -1) {
  5. depth = Integer.MAX_VALUE;
  6. }
  7. try {
  8. LoggerContext loggerContext = (LoggerContext)lcObject;
  9. List<Logger> loggers = loggerContext.getLoggerList();
  10. for (ch.qos.logback.classic.Logger logger : loggers) {
  11. Iterator<Appender<ILoggingEvent>> iter = logger.iteratorForAppenders();
  12. doSetDepth(iter, depth);
  13. }
  14. } catch (Throwable t) {
  15. LogLog.error("failed to set depth for logback", t);
  16. return false;
  17. }
  18. LogLog.info("set logback throwable depth success, depth: " + depth);
  19. return true;
  20. }
  21. return null;
  22. }

代码示例来源:origin: gocd/gocd

  1. private void assertPluginLogFile(String pluginId, String expectedPluginLogFileName) {
  2. SystemEnvironment systemEnvironment = mock(SystemEnvironment.class);
  3. DefaultPluginLoggingService loggingService = new DefaultPluginLoggingService(systemEnvironment);
  4. loggingService.debug(pluginId, "some-logger-name", "message");
  5. ch.qos.logback.classic.Logger logger = (ch.qos.logback.classic.Logger) LoggerFactory.getLogger("plugin." + pluginId);
  6. ArrayList<Appender<ILoggingEvent>> appenders = new ArrayList<>();
  7. logger.iteratorForAppenders().forEachRemaining(new Consumer<Appender<ILoggingEvent>>() {
  8. @Override
  9. public void accept(Appender<ILoggingEvent> iLoggingEventAppender) {
  10. appenders.add(iLoggingEventAppender);
  11. }
  12. });
  13. String loggingDirectory = loggingService.getCurrentLogDirectory();
  14. assertThat(appenders.size(), is(1));
  15. assertThat(new File(((FileAppender) appenders.get(0)).rawFileProperty()), is(new File(loggingDirectory, expectedPluginLogFileName)));
  16. }
  17. }

代码示例来源:origin: SonarSource/sonarqube

  1. @Test
  2. public void gobbler_logger_writes_to_console_without_formatting_when_running_from_command_line() {
  3. emulateRunFromCommandLine(false);
  4. LoggerContext ctx = underTest.configure();
  5. Logger gobblerLogger = ctx.getLogger(LOGGER_GOBBLER);
  6. verifyGobblerConsoleAppender(gobblerLogger);
  7. assertThat(gobblerLogger.iteratorForAppenders()).hasSize(1);
  8. }

代码示例来源:origin: SonarSource/sonarqube

  1. @Test
  2. public void gobbler_logger_writes_to_console_without_formatting_when_running_from_sonar_script() {
  3. emulateRunFromSonarScript();
  4. LoggerContext ctx = underTest.configure();
  5. Logger gobblerLogger = ctx.getLogger(LOGGER_GOBBLER);
  6. verifyGobblerConsoleAppender(gobblerLogger);
  7. assertThat(gobblerLogger.iteratorForAppenders()).hasSize(1);
  8. }

代码示例来源:origin: SonarSource/sonarqube

  1. @Test
  2. public void gobbler_logger_writes_to_console_without_formatting_when_running_from_ITs() {
  3. emulateRunFromCommandLine(true);
  4. LoggerContext ctx = underTest.configure();
  5. Logger gobblerLogger = ctx.getLogger(LOGGER_GOBBLER);
  6. verifyGobblerConsoleAppender(gobblerLogger);
  7. assertThat(gobblerLogger.iteratorForAppenders()).hasSize(1);
  8. }

代码示例来源:origin: SonarSource/sonarqube

  1. @Test
  2. public void root_logger_writes_to_console_with_formatting_and_to_sonar_log_file_when_running_from_ITs() {
  3. emulateRunFromCommandLine(true);
  4. LoggerContext ctx = underTest.configure();
  5. Logger rootLogger = ctx.getLogger(ROOT_LOGGER_NAME);
  6. verifyAppConsoleAppender(rootLogger.getAppender("APP_CONSOLE"));
  7. verifySonarLogFileAppender(rootLogger.getAppender("file_sonar"));
  8. assertThat(rootLogger.iteratorForAppenders()).hasSize(2);
  9. ctx.getLoggerList()
  10. .stream()
  11. .filter(logger -> !ROOT_LOGGER_NAME.equals(logger.getName()))
  12. .forEach(AppLoggingTest::verifyNoFileAppender);
  13. }

代码示例来源:origin: SonarSource/sonarqube

  1. @Test
  2. public void root_logger_writes_to_console_with_formatting_and_to_sonar_log_file_when_running_from_command_line() {
  3. emulateRunFromCommandLine(false);
  4. LoggerContext ctx = underTest.configure();
  5. Logger rootLogger = ctx.getLogger(ROOT_LOGGER_NAME);
  6. verifyAppConsoleAppender(rootLogger.getAppender("APP_CONSOLE"));
  7. verifySonarLogFileAppender(rootLogger.getAppender("file_sonar"));
  8. assertThat(rootLogger.iteratorForAppenders()).hasSize(2);
  9. // verify no other logger writes to sonar.log
  10. ctx.getLoggerList()
  11. .stream()
  12. .filter(logger -> !ROOT_LOGGER_NAME.equals(logger.getName()))
  13. .forEach(AppLoggingTest::verifyNoFileAppender);
  14. }

代码示例来源:origin: SonarSource/sonarqube

  1. @Test
  2. public void root_logger_only_writes_to_console_with_formatting_when_running_from_sonar_script() {
  3. emulateRunFromSonarScript();
  4. LoggerContext ctx = underTest.configure();
  5. Logger rootLogger = ctx.getLogger(ROOT_LOGGER_NAME);
  6. ConsoleAppender<ILoggingEvent> consoleAppender = (ConsoleAppender<ILoggingEvent>) rootLogger.getAppender("APP_CONSOLE");
  7. verifyAppFormattedLogEncoder(consoleAppender.getEncoder());
  8. assertThat(rootLogger.iteratorForAppenders()).hasSize(1);
  9. }

代码示例来源:origin: alibaba/nacos

  1. private static LoggerInfo doGetLoggerInfo(Logger logger) {
  2. LoggerInfo info = new LoggerInfo(logger.getName(), logger.isAdditive());
  3. Level level = logger.getLevel(), effectiveLevel = logger.getEffectiveLevel();
  4. if (level != null) {
  5. info.setLevel(level.toString());
  6. }
  7. if (effectiveLevel != null) {
  8. info.setEffectiveLevel(effectiveLevel.toString());
  9. }
  10. List<AppenderInfo> result = doGetLoggerAppenders(logger.iteratorForAppenders());
  11. info.setAppenders(result);
  12. return info;
  13. }

代码示例来源:origin: jsevellec/cassandra-unit

  1. private boolean hasAppenders(ch.qos.logback.classic.Logger logger)
  2. {
  3. Iterator<Appender<ILoggingEvent>> it = logger.iteratorForAppenders();
  4. return it.hasNext();
  5. }

相关文章