/** {@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; }
@Override public Logger getParent() { return getLogger().getParent(); }
@Override public Logger getParent() { return getLogger().getParent(); }
@Override public Logger getParent() { return getLogger().getParent(); }
public final Category getParent() { org.apache.logging.log4j.core.Logger parent = logger.getParent(); if (parent == null) { return null; } ConcurrentMap<String, Logger> loggers = getLoggersMap(logger.getContext()); Logger l = loggers.get(parent.getName()); return l == null ? new Category(parent) : l; }
public final Category getParent() { final org.apache.logging.log4j.core.Logger parent = logger.getParent(); if (parent == null) { return null; } final ConcurrentMap<String, Logger> loggers = getLoggersMap(logger.getContext()); final Logger l = loggers.get(parent.getName()); return l == null ? new Category(parent) : l; }
public final Category getParent() { final org.apache.logging.log4j.core.Logger parent = logger.getParent(); if (parent == null) { return null; } final ConcurrentMap<String, Logger> loggers = getLoggersMap(logger.getContext()); final Logger l = loggers.get(parent.getName()); return l == null ? new Category(parent) : l; }
/** * This method is not exposed through the public API and is provided primarily for unit testing. * <p> * If the new level is null, this logger inherits the level from its parent. * </p> * * @param level The Level to use on this Logger, may be null. */ public synchronized void setLevel(final Level level) { if (level == getLevel()) { return; } Level actualLevel; if (level != null) { actualLevel = level; } else { final Logger parent = getParent(); actualLevel = parent != null ? parent.getLevel() : privateConfig.loggerConfigLevel; } privateConfig = new PrivateConfig(privateConfig, actualLevel); }
/** {@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; }