类org.apache.logging.log4j.core.config.AppenderControl源码实例Demo

下面列出了怎么用org.apache.logging.log4j.core.config.AppenderControl的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: logging-log4j2   文件: FailoverAppender.java
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);
    }
}
 
源代码2 项目: ignite   文件: Log4J2Logger.java
/** {@inheritDoc} */
@Nullable @Override public String fileName() {
    for (Logger log = impl; log != null; log = log.getParent()) {
        for (Appender a : log.getAppenders().values()) {
            if (a instanceof FileAppender)
                return ((FileAppender)a).getFileName();

            if (a instanceof RollingFileAppender)
                return ((RollingFileAppender)a).getFileName();

            if (a instanceof RoutingAppender) {
                try {
                    RoutingAppender routing = (RoutingAppender)a;

                    Field appsFiled = routing.getClass().getDeclaredField("appenders");

                    appsFiled.setAccessible(true);

                    Map<String, AppenderControl> appenders = (Map<String, AppenderControl>)appsFiled.get(routing);

                    for (AppenderControl control : appenders.values()) {
                        Appender innerApp = control.getAppender();

                        if (innerApp instanceof FileAppender)
                            return normalize(((FileAppender)innerApp).getFileName());

                        if (innerApp instanceof RollingFileAppender)
                            return normalize(((RollingFileAppender)innerApp).getFileName());
                    }
                }
                catch (IllegalAccessException | NoSuchFieldException e) {
                    error("Failed to get file name (was the implementation of log4j2 changed?).", e);
                }
            }
        }
    }

    return null;
}
 
源代码3 项目: logging-log4j2   文件: LoggerConfigBenchmark.java
@Setup
public void setup() {

    listAppender.start();
    final AppenderControl control = new AppenderControl(listAppender, Level.ALL, null);
    appenderSet.add(control);
}
 
源代码4 项目: logging-log4j2   文件: AsyncAppender.java
/**
 * 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;
}
 
源代码5 项目: logging-log4j2   文件: RewriteAppender.java
@Override
public void start() {
    for (final AppenderRef ref : appenderRefs) {
        final String name = ref.getRef();
        final Appender appender = config.getAppender(name);
        if (appender != null) {
            final Filter filter = appender instanceof AbstractAppender ?
                ((AbstractAppender) appender).getFilter() : null;
            appenders.put(name, new AppenderControl(appender, ref.getLevel(), filter));
        } else {
            LOGGER.error("Appender " + ref + " cannot be located. Reference ignored");
        }
    }
    super.start();
}
 
源代码6 项目: logging-log4j2   文件: RewriteAppender.java
/**
 * 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);
    }
}
 
源代码7 项目: logging-log4j2   文件: FailoverAppender.java
@Override
public void start() {
    final Map<String, Appender> map = config.getAppenders();
    int errors = 0;
    final Appender appender = map.get(primaryRef);
    if (appender != null) {
        primary = new AppenderControl(appender, null, null);
    } else {
        LOGGER.error("Unable to locate primary Appender " + primaryRef);
        ++errors;
    }
    for (final String name : failovers) {
        final Appender foAppender = map.get(name);
        if (foAppender != null) {
            failoverAppenders.add(new AppenderControl(foAppender, null, null));
        } else {
            LOGGER.error("Failover appender " + name + " is not configured");
        }
    }
    if (failoverAppenders.isEmpty()) {
        LOGGER.error("No failover appenders are available");
        ++errors;
    }
    if (errors == 0) {
        super.start();
    }
}
 
private ListAppender getListAppender() {
    final String key = "Service2";
    final RoutingAppender routingAppender = getRoutingAppender();
    Assert.assertTrue(routingAppender.isStarted());
    final Map<String, AppenderControl> appenders = routingAppender.getAppenders();
    final AppenderControl appenderControl = appenders.get(key);
    assertNotNull("No appender control generated for '" + key + "'; appenders = " + appenders, appenderControl);
    final ListAppender listAppender = (ListAppender) appenderControl.getAppender();
    return listAppender;
}
 
源代码9 项目: logging-log4j2   文件: RoutesScriptAppenderTest.java
private ListAppender getListAppender() {
    final String key = "Service2";
    final RoutingAppender routingAppender = getRoutingAppender();
    Assert.assertTrue(routingAppender.isStarted());
    final Map<String, AppenderControl> appenders = routingAppender.getAppenders();
    final AppenderControl appenderControl = appenders.get(key);
    assertNotNull("No appender control generated for '" + key + "'; appenders = " + appenders, appenderControl);
    return (ListAppender) appenderControl.getAppender();
}
 
源代码10 项目: logging-log4j2   文件: LoggerConfigBenchmark.java
protected void callAppenders(final LogEvent event) {
    for (final AppenderControl control : appenderSet) {
        control.callAppender(event);
    }
}
 
源代码11 项目: logging-log4j2   文件: AsyncAppender.java
public AsyncThread(final List<AppenderControl> appenders, final BlockingQueue<LogEvent> queue) {
    super("AsyncAppender-" + THREAD_SEQUENCE.getAndIncrement());
    this.appenders = appenders;
    this.queue = queue;
    setDaemon(true);
}
 
源代码12 项目: logging-log4j2   文件: RoutingAppender.java
/**
 * Returns an unmodifiable view of the appenders created by this {@link RoutingAppender}.
 * Note that this map does not contain appenders that are routed by reference.
 */
public Map<String, AppenderControl> getAppenders() {
    return createdAppendersUnmodifiableView;
}
 
 类所在包
 类方法
 同包方法