@Override public void append(LogEvent event) { setupAppenderIfRequired(event); if (appenderControl.get() != null) { if (!(event.getMarker() != null && event.getMarker().getName() != null && event.getMarker().getName().equals(Log4jQueryCompleteMarker.EOF_MARKER))) { appenderControl.get().callAppender(event); } else { LOGGER.debug("Not forwarding message with maker={}, marker.getName={}", event.getMarker(), (event.getMarker() == null ? "nullMarker" : event.getMarker().getName())); } } }
private void logToErrorAppenderIfNecessary(final boolean appendSuccessful, final LogEvent logEvent) { if (!appendSuccessful && errorAppender != null) { errorAppender.callAppender(logEvent); } }
/** * Calls {@link AppenderControl#callAppender(LogEvent) callAppender} on all registered {@code AppenderControl} * objects, and returns {@code true} if at least one appender call was successful, {@code false} otherwise. Any * exceptions are silently ignored. * * @param event the event to forward to the registered appenders * @return {@code true} if at least one appender call succeeded, {@code false} otherwise */ boolean callAppenders(final LogEvent event) { boolean success = false; for (final AppenderControl control : appenders) { try { control.callAppender(event); success = true; } catch (final Exception ex) { // If no appender is successful the error appender will get it. } } return success; }
private void callAppender(final LogEvent event) { try { primary.callAppender(event); nextCheckNanos = 0; } catch (final Exception ex) { nextCheckNanos = System.nanoTime() + intervalNanos; failover(event, ex); } }
/** * Modifies the event and pass to the subordinate Appenders. * @param event The LogEvent. */ @Override public void append(LogEvent event) { if (rewritePolicy != null) { event = rewritePolicy.rewrite(event); } for (final AppenderControl control : appenders.values()) { control.callAppender(event); } }
@PerformanceSensitive("allocation") protected void callAppenders(final LogEvent event) { final AppenderControl[] controls = appenders.get(); //noinspection ForLoopReplaceableByForEach for (int i = 0; i < controls.length; i++) { controls[i].callAppender(event); } }
if (!success && errorAppender != null) { try { errorAppender.callAppender(event); } catch (final Exception ex) {
/** * Extension point - let's allow to customize e.g.: LogEvent type or any other param * * @param failedPayload payload to be handled */ protected void doDeliver(String failedPayload) { appenderControl.callAppender(DefaultLogEventFactory.getInstance().createEvent(appenderRef.getRef(), null, getClass().getName(), appenderRef.getLevel(), new SimpleMessage(failedPayload), null, null)); }
/** * Extension point - let's allow to customize e.g.: LogEvent type or any other param * * @param failedPayload payload to be handled */ protected void doDeliver(String failedPayload) { appenderControl.callAppender(DefaultLogEventFactory.getInstance().createEvent(appenderRef.getRef(), null, getClass().getName(), appenderRef.getLevel(), new SimpleMessage(failedPayload), null, null)); }
@Override public void append(LogEvent event) { setupAppenderIfRequired(event); if (appenderControl.get() != null) { if (!(event.getMarker() != null && event.getMarker().getName() != null && event.getMarker().getName().equals(Log4jQueryCompleteMarker.EOF_MARKER))) { appenderControl.get().callAppender(event); } else { LOGGER.debug("Not forwarding message with maker={}, marker.getName={}", event.getMarker(), (event.getMarker() == null ? "nullMarker" : event.getMarker().getName())); } } }
private void failover(final LogEvent event, final Exception ex) { final RuntimeException re = ex != null ? (ex instanceof LoggingException ? (LoggingException) ex : new LoggingException(ex)) : null; boolean written = false; Exception failoverException = null; for (final AppenderControl control : failoverAppenders) { try { control.callAppender(event); written = true; break; } catch (final Exception fex) { if (failoverException == null) { failoverException = fex; } } } if (!written && !ignoreExceptions()) { if (re != null) { throw re; } throw new LoggingException("Unable to write to failover appenders", failoverException); } }
@Override public void append(LogEvent event) { if (rewritePolicy != null) { event = rewritePolicy.rewrite(event); } final String pattern = routes.getPattern(event, scriptStaticVariables); final String key = pattern != null ? configuration.getStrSubstitutor().replace(event, pattern) : defaultRoute.getKey(); final AppenderControl control = getControl(key, event); if (control != null) { control.callAppender(event); } if (purgePolicy != null) { purgePolicy.update(key, event); } }