public void start() { if (getState().equals(State.INITIALIZING)) { initialize();
@Override public Cancellable addShutdownCallback(final Runnable callback) { if (isStarted()) { final Cancellable receipt = new Cancellable() { // use a reference to prevent memory leaks private final Reference<Runnable> hook = new SoftReference<Runnable>(callback); @Override public void cancel() { hook.clear(); hooks.remove(this); } @Override public void run() { final Runnable hook = this.hook.get(); if (hook != null) { hook.run(); this.hook.clear(); } } @Override public String toString() { return String.valueOf(hook.get()); } }; hooks.add(receipt); return receipt; } throw new IllegalStateException("Cannot add new shutdown hook as this is not started. Current state: " + state.get().name()); }
@Override public String getStatus() { return loggerContext.getState().toString(); }
@Override public void append(LogEvent event) { logger.debug("appending: %s", event.getMessage().getFormattedMessage()); if (State.STARTED.equals(state)) { byte[] eventBytes = layout.toByteArray(event); throttler.push(eventBytes); } }
@Override public boolean isStopped() { return State.STOPPED.equals(getState()); }
@Override public boolean isStarted() { return State.STARTED.equals(getState()); }
@Override public Cancellable addShutdownCallback(final Runnable callback) { if (isStarted()) { final Cancellable receipt = new RegisteredCancellable(callback, hooks); hooks.add(receipt); return receipt; } throw new IllegalStateException("Cannot add new shutdown hook as this is not started. Current state: " + state.get().name()); }
protected int hashCodeImpl() { final int prime = 31; int result = 1; result = prime * result + ((state == null) ? 0 : state.hashCode()); return result; }
@Override protected boolean test() throws Exception { if (context.getState().equals(LifeCycle.State.STOPPED)) { return true; } else { LoggerContext currentContext = getContext(); if (currentContext != null && currentContext != context) { contextWasAccessibleDuringShutdown.set(false); } return false; } }
@Override public boolean isStopped() { return State.STOPPED.equals(getState()); }
@Override public boolean isStarted() { return State.STARTED.equals(getState()); }