private static List<AppenderInfo> doGetLoggerAppenders(Iterator<Appender<ILoggingEvent>> appenders) { List<AppenderInfo> result = new ArrayList<AppenderInfo>(); while (appenders.hasNext()) { AppenderInfo info = new AppenderInfo(); Appender<ILoggingEvent> appender = appenders.next(); info.setName(appender.getName()); info.setType(appender.getClass().getName()); if (appender instanceof FileAppender) { info.setFile(((FileAppender)appender).getFile()); } else if (appender instanceof AsyncAppender) { AsyncAppender aa = (AsyncAppender)appender; Iterator<Appender<ILoggingEvent>> iter = aa.iteratorForAppenders(); List<AppenderInfo> asyncs = doGetLoggerAppenders(iter); // 标明异步appender List<String> nestedNames = new ArrayList<String>(); for (AppenderInfo a : asyncs) { nestedNames.add(a.getName()); result.add(a); } info.withDetail("nestedNames", nestedNames); } else if (appender instanceof ConsoleAppender) { info.withDetail("target", ((ConsoleAppender)appender).getTarget()); } result.add(info); } return result; } }
protected Appender<E> wrapAsync(Appender<E> appender, AsyncAppenderFactory<E> asyncAppenderFactory, Context context) { final AsyncAppenderBase<E> asyncAppender = asyncAppenderFactory.build(); if (asyncAppender instanceof AsyncAppender) { ((AsyncAppender) asyncAppender).setIncludeCallerData(includeCallerData); } asyncAppender.setQueueSize(queueSize); asyncAppender.setDiscardingThreshold(discardingThreshold); asyncAppender.setContext(context); asyncAppender.setName("async-" + appender.getName()); asyncAppender.addAppender(appender); asyncAppender.setNeverBlock(neverBlock); asyncAppender.start(); if (messageRate == null) { return asyncAppender; } else { return new ThrottlingAppenderWrapper<>(asyncAppender, messageRate.getQuantity(), messageRate.getUnit()); } }
/** * Look for an attached appender named as <code>name</code>. * <p/> * <p> Return the appender with that name if in the list. Return null * otherwise. */ public Appender<E> getAppender(String name) { if (name == null) { return null; } Appender<E> found = null; for (Appender<E> appender : appenderList) { if (name.equals(appender.getName())) { return appender; } } return null; }
/** * Remove the appender with the name passed as parameter form the list of * appenders. */ public boolean detachAppender(String name) { if (name == null) { return false; } boolean removed = false; for (Appender<E> a : appenderList) { if (name.equals((a).getName())) { removed = appenderList.remove(a); break; } } return removed; } }
public void addAppender(Appender<E> newAppender) { if (appenderCount == 0) { appenderCount++; addInfo("Attaching appender named ["+newAppender.getName()+"] to AsyncAppender."); aai.addAppender(newAppender); } else { addWarn("One and only one appender may be attached to AsyncAppender."); addWarn("Ignoring additional appender named [" + newAppender.getName() + "]"); } }
private Appender setLogLevelAndGetAppender(Level loglevel) { Logger root = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME); root.setLevel(loglevel); final Appender mockAppender = mock(Appender.class); when(mockAppender.getName()).thenReturn("MOCK"); root.addAppender(mockAppender); return mockAppender; }
/** * Once the children elements are also parsed, now is the time to activate the * appender options. */ public void end(InterpretationContext ec, String name) { if (inError) { return; } if (appender instanceof LifeCycle) { ((LifeCycle) appender).start(); } Object o = ec.peekObject(); if (o != appender) { addWarn("The object at the of the stack is not the appender named [" + appender.getName() + "] pushed earlier."); } else { ec.popObject(); } } }
@Override public Appender<ILoggingEvent> getAppender(String name) { if (emergencyAppender != null && name != null && name.equals(emergencyAppender.getName())) { return emergencyAppender; } else { return null; } }
public boolean isApplicableToAppender(Appender<?> appender) { return (_appender == null || _appender.equals(appender.getName())); } }
@Override public boolean detachAppender(String name) { if (emergencyAppender != null && emergencyAppender.getName().equals(name)) { emergencyAppender = null; return true; } else { return false; } }
private List<String> getNames(List<Appender<ILoggingEvent>> appenders) { List<String> result = new ArrayList<>(appenders.size()); for (Appender<ILoggingEvent> appender: appenders) { result.add(appender.getName()); } return result; }
@Override public void addAppender(Appender<ILoggingEvent> appender) { if (emergencyAppender == null) { emergencyAppender = appender; } else { addWarn("One and only one appender may be attached to " + getClass().getSimpleName()); addWarn("Ignoring additional appender named [" + appender.getName() + "]"); } }
private void removeBeforeAppenders(final Set<ch.qos.logback.classic.Logger> loggersBefore, final LoggerTO logger, final ch.qos.logback.classic.Logger logbackLogger, final Optional<Set<Appender<ILoggingEvent>>> appendersBefore) { if (appendersBefore.isPresent()) { for (Appender<ILoggingEvent> appenderBefore : appendersBefore.get()) { logbackLogger.detachAppender(appenderBefore); appenderBefore.stop(); LOG.trace("Logger {}: Removing old appender: {}", logger.getLoggerName(), appenderBefore.getName()); } loggersBefore.remove(logbackLogger); } }
@Nonnull public static LogUiAppender toUi(@Nonnull final Appender<?> appender) { final LogUiAppender result = new LogUiAppender(); result.setName(appender.getName()); result.setClassName(appender.getClass().getName()); return result; }
public void addAppender(Appender<E> newAppender) { if (appenderCount == 0) { appenderCount++; addInfo("Attaching appender named ["+newAppender.getName()+"] to AsyncAppender."); aai.addAppender(newAppender); } else { addWarn("One and only one appender may be attached to AsyncAppender."); addWarn("Ignoring additional appender named [" + newAppender.getName() + "]"); } }
public void addAppender(Appender<E> newAppender) { if (appenderCount == 0) { appenderCount++; addInfo("Attaching appender named ["+newAppender.getName()+"] to AsyncAppender."); aai.addAppender(newAppender); } else { addWarn("One and only one appender may be attached to AsyncAppender."); addWarn("Ignoring additional appender named [" + newAppender.getName() + "]"); } }
public void addAppender(Appender<E> newAppender) { if (appenderCount == 0) { appenderCount++; addInfo("Attaching appender named [" + newAppender.getName() + "] to AsyncAppender."); aai.addAppender(newAppender); } else { addWarn("One and only one appender may be attached to AsyncAppender."); addWarn("Ignoring additional appender named [" + newAppender.getName() + "]"); } }
public void addAppender(Appender<E> newAppender) { if (appenderCount == 0) { appenderCount++; addInfo("Attaching appender named [" + newAppender.getName() + "] to AsyncAppender."); aai.addAppender(newAppender); } else { addWarn("One and only one appender may be attached to AsyncAppender."); addWarn("Ignoring additional appender named [" + newAppender.getName() + "]"); } }
public void addAppender(Appender<E> newAppender) { if (appenderCount == 0) { appenderCount++; addInfo("Attaching appender named ["+newAppender.getName()+"] to AsyncAppender."); aai.addAppender(newAppender); } else { addWarn("One and only one appender may be attached to AsyncAppender."); addWarn("Ignoring additional appender named [" + newAppender.getName() + "]"); } }
protected Appender<ILoggingEvent> asAsync(Appender<ILoggingEvent> appender, Context context) { final AsyncAppender asyncAppender = new AsyncAppender(); asyncAppender.setIncludeCallerData(false); asyncAppender.setQueueSize(AsyncAppenderBase.DEFAULT_QUEUE_SIZE); asyncAppender.setDiscardingThreshold(-1); asyncAppender.setContext(context); asyncAppender.setName(appender.getName()); asyncAppender.addAppender(appender); asyncAppender.start(); return asyncAppender; } }