@Before public void beforeLogSystemInit() throws IOException, InterruptedException { kafka = TestKafka.createTestKafka(1); loggerContext = new LoggerContext(); loggerContext.putProperty("brokers.list", kafka.getBrokerList()); loggerContext.getStatusManager().add(new StatusListener() { @Override public void addStatusEvent(Status status) { if (status.getEffectiveLevel() > Status.INFO) { System.err.println(status.toString()); if (status.getThrowable() != null) { collector.addError(status.getThrowable()); } else { collector.addError(new RuntimeException("StatusManager reported warning: "+status.toString())); } } else { System.out.println(status.toString()); } } }); loggerContext.putProperty("HOSTNAME","localhost"); unit = new KafkaAppender<ILoggingEvent>(); final PatternLayout patternLayout = new PatternLayout(); patternLayout.setPattern("%msg"); patternLayout.setContext(loggerContext); patternLayout.start(); unit.setEncoder(new LayoutKafkaMessageEncoder(patternLayout, Charset.forName("UTF-8"))); unit.setTopic("logs"); unit.setName("TestKafkaAppender"); unit.setContext(loggerContext); unit.addProducerConfigValue(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, kafka.getBrokerList()); unit.setKeyingStrategy(new RoundRobinKeyingStrategy()); }
private void resetStatusListeners() { StatusManager sm = this.getStatusManager(); Iterator i$ = sm.getCopyOfStatusListenerList().iterator(); while(i$.hasNext()) { StatusListener sl = (StatusListener)i$.next(); sm.remove(sl); } }
private static void initAndAddListener(KonkerLoggerContext loggerContext, StatusListener listener) { if(listener != null) { if(listener instanceof ContextAware) { ((ContextAware)listener).setContext(loggerContext); } if(listener instanceof LifeCycle) { ((LifeCycle)listener).start(); } loggerContext.getStatusManager().add(listener); } }
private static StatusListener createListenerPerClassName(KonkerLoggerContext loggerContext, String listenerClass) { try { return (StatusListener)OptionHelper.instantiateByClassName(listenerClass, StatusListener.class, loggerContext); } catch (Exception var3) { var3.printStackTrace(); return null; } }
private void fireStatusAddEvent(Status status) { synchronized (statusListenerListLock) { for (StatusListener sl : statusListenerList) { sl.addStatusEvent(status); } } }
/** * This implementation does not allow duplicate installations of OnConsoleStatusListener * @param listener */ public void add(StatusListener listener) { synchronized (statusListenerListLock) { if(listener instanceof OnConsoleStatusListener) { boolean alreadyPresent = checkForPresence(statusListenerList, listener.getClass()); if(alreadyPresent) return; } statusListenerList.add(listener); } }
private boolean checkForPresence(List<StatusListener> statusListenerList, Class<?> aClass) { for(StatusListener e: statusListenerList) { if(e.getClass() == aClass) return true; } return false; }
public void begin(InterpretationContext ec, String name, Attributes attributes) throws ActionException { inError = false; String className = attributes.getValue(CLASS_ATTRIBUTE); if (OptionHelper.isEmpty(className)) { addError("Missing class name for statusListener. Near [" + name + "] line " + getLineNumber(ec)); inError = true; return; } try { statusListener = (StatusListener) OptionHelper.instantiateByClassName( className, StatusListener.class, context); ec.getContext().getStatusManager().add(statusListener); if (statusListener instanceof ContextAware) { ((ContextAware) statusListener).setContext(context); } addInfo("Added status listener of type [" + className + "]"); ec.pushObject(statusListener); } catch (Exception e) { inError = true; addError( "Could not create an StatusListener of type [" + className + "].", e); throw new ActionException(e); } }
private static void initAndAddListener(LoggerContext loggerContext, StatusListener listener) { if (listener != null) { if(listener instanceof ContextAware) // LOGBACK-767 ((ContextAware) listener).setContext(loggerContext); if(listener instanceof LifeCycle) // LOGBACK-767 ((LifeCycle) listener).start(); loggerContext.getStatusManager().add(listener); } }
private static StatusListener createListenerPerClassName(LoggerContext loggerContext, String listenerClass) { try { return (StatusListener) OptionHelper.instantiateByClassName( listenerClass, StatusListener.class, loggerContext); } catch (Exception e) { // printing on the console is the best we can do e.printStackTrace(); return null; } }
@Test public void autoStatusListener() throws JoranException { System.setProperty(ContextInitializer.STATUS_LISTENER_CLASS, TrivialStatusListener.class.getName()); List<StatusListener> statusListenerList = loggerContext.getStatusManager().getCopyOfStatusListenerList(); assertEquals(0, statusListenerList.size()); doAutoConfigFromSystemProperties(ClassicTestConstants.INPUT_PREFIX + "autoConfig.xml"); statusListenerList = loggerContext.getStatusManager().getCopyOfStatusListenerList(); assertTrue(statusListenerList.size() +" should be 1", statusListenerList.size() == 1); // LOGBACK-767 TrivialStatusListener tsl = (TrivialStatusListener) statusListenerList.get(0); assertTrue("expecting at least one event in list", tsl.list.size() > 0); }
@Test public void autoOnConsoleStatusListener() throws JoranException { System.setProperty(ContextInitializer.STATUS_LISTENER_CLASS, ContextInitializer.SYSOUT); List<StatusListener> sll = loggerContext.getStatusManager().getCopyOfStatusListenerList(); assertEquals(0, sll.size()); doAutoConfigFromSystemProperties(ClassicTestConstants.INPUT_PREFIX + "autoConfig.xml"); sll = loggerContext.getStatusManager().getCopyOfStatusListenerList(); assertTrue(sll.size() +" should be 1", sll.size() == 1); }
public void remove(StatusListener listener) { synchronized (statusListenerListLock) { statusListenerList.remove(listener); } }
public List<StatusListener> getCopyOfStatusListenerList() { synchronized (statusListenerListLock) { return new ArrayList<StatusListener>(statusListenerList); } }
public void add(StatusListener listener) { throw new UnsupportedOperationException(); }
public void remove(StatusListener listener) { throw new UnsupportedOperationException(); }
public List<StatusListener> getCopyOfStatusListenerList() { throw new UnsupportedOperationException(); }
void addStatusListener(StatusListener statusListener) { StatusManager sm = loggerContext.getStatusManager(); sm.add(statusListener); }
void removeStatusListener(StatusListener statusListener) { StatusManager sm = loggerContext.getStatusManager(); sm.remove(statusListener); }
private void resetStatusListeners() { StatusManager sm = getStatusManager(); for (StatusListener sl : sm.getCopyOfStatusListenerList()) { sm.remove(sl); } }