private boolean hasAppenderRefFilter(final Configuration config) { for (LoggerConfig loggerConfig : config.getLoggers().values()) { boolean isRoot = loggerConfig.getName().equals(""); boolean isGemFire = loggerConfig.getName().startsWith(GEODE_LOGGER_PREFIX); if (isRoot || isGemFire) { // check for AppenderRef Filter for (AppenderRef appenderRef : loggerConfig.getAppenderRefs()) { if (appenderRef.getFilter() != null) { return true; } } } } return false; } }
@Override public void evaluate() throws Throwable { final CompositeConfiguration config = (CompositeConfiguration) lcr.getConfiguration(); final List<AppenderRef> appenderRefList = config.getLogger("cat1").getAppenderRefs(); final AppenderRef appenderRef = getAppenderRef(appenderRefList, "STDOUT"); assertTrue("Expected cat1 STDOUT appenderRef to have a regex filter", appenderRef.getFilter() != null && appenderRef.getFilter() instanceof RegexFilter); } };
@Override public String[] getAppenderRefs() { final List<AppenderRef> refs = loggerConfig.getAppenderRefs(); final String[] result = new String[refs.size()]; for (int i = 0; i < result.length; i++) { result[i] = refs.get(i).getRef(); } return result; } }
rootLoggerConfig.getAppenderRefs().forEach(ar -> { System.out.println("AppenderReference: " + ar.getRef()); });
public static boolean hasAppenderRefFilter(final Configuration config) { for (LoggerConfig loggerConfig : config.getLoggers().values()) { boolean isRoot = loggerConfig.getName().equals(""); boolean isGemFire = loggerConfig.getName().startsWith(LogService.BASE_LOGGER_NAME); boolean hasFilter = loggerConfig.hasFilter(); boolean isGemFireVerboseFilter = hasFilter && LogService.GEMFIRE_VERBOSE_FILTER.equals(loggerConfig.getFilter().toString()); if (isRoot || isGemFire) { // check for AppenderRef Filter for (AppenderRef appenderRef : loggerConfig.getAppenderRefs()) { if (appenderRef.getFilter() != null) { return true; } } } } return false; } }
public static LoggerConfig getOrCreateLoggerConfig(String name) { LoggerContext context = (LoggerContext)LogManager.getContext(false); Configuration config = context.getConfiguration(); LoggerConfig logConfig = config.getLoggerConfig(name); boolean update = false; if (!logConfig.getName().equals(name)) { List<AppenderRef> appenderRefs = logConfig.getAppenderRefs(); Map<Property, Boolean> properties = logConfig.getProperties(); Set<Property> props = properties == null ? null : properties.keySet(); logConfig = LoggerConfig.createLogger( String.valueOf(logConfig.isAdditive()), logConfig.getLevel(), name, String.valueOf(logConfig.isIncludeLocation()), appenderRefs == null ? null : appenderRefs.toArray(new AppenderRef[appenderRefs.size()]), props == null ? null : props.toArray(new Property[props.size()]), config, null); config.addLogger(name, logConfig); update = true; } if (update) { context.updateLoggers(); } return logConfig; }
boolean update = false; if (!logConfig.getName().equals(name)) { List<AppenderRef> appenderRefs = logConfig.getAppenderRefs(); Map<Property, Boolean> properties = logConfig.getProperties(); Set<Property> props = properties == null ? null : properties.keySet();
/** Modifies the log4j config to add the policy **/ public static void install() { Logger rootLogger = (Logger) LogManager.getRootLogger(); LoggerConfig loggerConfig = rootLogger.get(); // Remove appender refs from config List<AppenderRef> appenderRefs = new ArrayList<>(loggerConfig.getAppenderRefs()); for (AppenderRef appenderRef : appenderRefs) { loggerConfig.removeAppender(appenderRef.getRef()); } // Create the RewriteAppender, which wraps the appenders RewriteAppender rewriteAppender = RewriteAppender.createAppender( "VanillaFixDeobfuscatingAppender", "true", appenderRefs.toArray(new AppenderRef[0]), rootLogger.getContext().getConfiguration(), new DeobfuscatingRewritePolicy(), null ); rewriteAppender.start(); // Add the new appender loggerConfig.addAppender(rewriteAppender, null, null); } }
for (final AppenderRef ref : loggerConfig.getAppenderRefs()) { final Appender app = appenders.get(ref.getRef()); if (app != null) {