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; } }
private boolean hasLoggerFilter(final Configuration config) { for (LoggerConfig loggerConfig : config.getLoggers().values()) { boolean isRoot = loggerConfig.getName().equals(""); boolean isGemFire = loggerConfig.getName().startsWith(GEODE_LOGGER_PREFIX); boolean hasFilter = loggerConfig.hasFilter(); boolean isGemFireVerboseFilter = hasFilter && (GEODE_VERBOSE_FILTER.equals(loggerConfig.getFilter().toString()) || GEMFIRE_VERBOSE_FILTER.equals(loggerConfig.getFilter().toString())); if (isRoot || isGemFire) { // check for Logger Filter if (hasFilter && !isGemFireVerboseFilter) { return true; } } } return false; }
@GET @Timed @ApiOperation(value = "List all loggers and their current levels") @Produces(MediaType.APPLICATION_JSON) public LoggersSummary loggers() { final Collection<LoggerConfig> loggerConfigs = getLoggerConfigs(); final Map<String, SingleLoggerSummary> loggers = Maps.newHashMapWithExpectedSize(loggerConfigs.size()); for (LoggerConfig config : loggerConfigs) { if (!isPermitted(RestPermissions.LOGGERS_READ, config.getName())) { continue; } final Level level = config.getLevel(); loggers.put(config.getName(), SingleLoggerSummary.create(level.toString().toLowerCase(Locale.ENGLISH), level.intLevel())); } return LoggersSummary.create(loggers); }
private LoggerConfiguration convertLoggerConfiguration(LoggerConfig loggerConfig) { if (loggerConfig == null) { return null; } LogLevel level = LEVELS.convertNativeToSystem(loggerConfig.getLevel()); String name = loggerConfig.getName(); if (!StringUtils.hasLength(name) || LogManager.ROOT_LOGGER_NAME.equals(name)) { name = ROOT_LOGGER_NAME; } return new LoggerConfiguration(name, level, level); }
private void updateLogLevel(final LogConfig logConfig, final LogLevelUpdateScope logLevelUpdateScope) { Level level = toLevel(LogWriterLevel.find(logConfig.getLogLevel())); Configuration configuration = getRootLoggerContext().getConfiguration(); Collection<LoggerConfig> loggerConfigs = new HashSet<>(); for (LoggerConfig loggerConfig : configuration.getLoggers().values()) { switch (logLevelUpdateScope) { case ALL_LOGGERS: loggerConfigs.add(loggerConfig); break; case GEODE_AND_SECURITY_LOGGERS: if (loggerConfig.getName().startsWith(GEODE_LOGGER_PREFIX)) { loggerConfigs.add(loggerConfig); } break; case GEODE_AND_APPLICATION_LOGGERS: if (!loggerConfig.getName().equals(SECURITY_LOGGER_NAME)) { loggerConfigs.add(loggerConfig); } break; case GEODE_LOGGERS: if (loggerConfig.getName().startsWith(GEODE_LOGGER_PREFIX) && !loggerConfig.getName().equals(SECURITY_LOGGER_NAME)) { loggerConfigs.add(loggerConfig); } } } updateLogLevel(level, loggerConfigs.toArray(new LoggerConfig[0])); }
public void setLoggerLevel(LoggerContext logContext, String loggerName, String newLevelStr) { Level newLevel = Level.getLevel(newLevelStr); Configuration configuration = logContext.getConfiguration(); LoggerConfig loggerConfig = configuration.getLoggerConfig(loggerName); if (loggerConfig.getName().equalsIgnoreCase(loggerName)) { LOG.info("Setting {} log level to: {}", loggerConfig, newLevel); loggerConfig.setLevel(newLevel); } else { // create a new config. Make it additive (true) s.t. inherit parents appenders LoggerConfig newLoggerConfig = new LoggerConfig(loggerName, newLevel, true); LOG.info("Adding config for: {} with level: {}", newLoggerConfig, newLevel); configuration.addLogger(loggerName, newLoggerConfig); } } }
private void listLoggers(final HttpServletResponse response) throws IOException { PrintWriter writer = null; try { writer = response.getWriter(); ConfLoggers confLoggers = new ConfLoggers(); Collection<LoggerConfig> loggerConfigs = conf.getLoggers().values(); loggerConfigs.forEach(lc -> confLoggers.getLoggers().add(new ConfLogger(lc.getName(), lc.getLevel().toString()))); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.writerWithDefaultPrettyPrinter().writeValue(writer, confLoggers); } catch (IOException e) { LOG.error("Caught an exception while processing Log4j2 configuration request", e); response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); return; } finally { if (writer != null) { writer.close(); } } response.setStatus(HttpServletResponse.SC_OK); } }
@VisibleForTesting protected void setLoggerLevel(final String loggerName, final Level level) { final LoggerContext context = (LoggerContext) LogManager.getContext(false); final Configuration config = context.getConfiguration(); final LoggerConfig loggerConfig = config.getLoggerConfig(loggerName); if(loggerName.equals(loggerConfig.getName())) { loggerConfig.setLevel(level); } else { final LoggerConfig newLoggerConfig = new LoggerConfig(loggerName, level, loggerConfig.isAdditive()); newLoggerConfig.setLevel(level); config.addLogger(loggerName, newLoggerConfig); } context.updateLoggers(); }
loggerConfig.getName().equals(LogManager.ROOT_LOGGER_NAME)) { if (LOG.isDebugEnabled()) { LOG.debug("Requested logger ({}) not found. Adding as new logger with {} level", loggerName, logLevel);
private boolean configureSecurityAppenders(final String name, final Level level) { Configuration log4jConfiguration = getRootLoggerContext().getConfiguration(); LoggerConfig loggerConfig = log4jConfiguration.getLoggerConfig(name); if (!loggerConfig.getName().equals(SECURITY_LOGGER_NAME)) { return false; } Appender stdoutAppender = log4jConfiguration.getAppender(GEODE_CONSOLE_APPENDER_NAME); Appender mainLogWriterAppender = log4jConfiguration.getAppender(LOGWRITER_APPENDER_NAME); if (stdoutAppender != null) { loggerConfig.addAppender(stdoutAppender, level, null); } if (mainLogWriterAppender != null) { loggerConfig.addAppender(mainLogWriterAppender, level, null); } loggerConfig.setAdditive(true); getRootLoggerContext().updateLoggers(); return true; }
@Test public void testLevelInheritence() throws Exception { final Configuration config = context.getConfiguration(); final LoggerConfig loggerConfig = config.getLoggerConfig("org.apache.logging.log4j.core.LoggerTest"); assertNotNull(loggerConfig); assertEquals(loggerConfig.getName(), "org.apache.logging.log4j.core.LoggerTest"); assertEquals(loggerConfig.getLevel(), Level.DEBUG); final Logger localLogger = context.getLogger("org.apache.logging.log4j.core.LoggerTest"); assertTrue("Incorrect level - expected DEBUG, actual " + localLogger.getLevel(), localLogger.getLevel() == Level.DEBUG); }
public static void setLevel(Logger logger, Level level) { if (!LogManager.ROOT_LOGGER_NAME.equals(logger.getName())) { Configurator.setLevel(logger.getName(), level); } else { final LoggerContext ctx = LoggerContext.getContext(false); final Configuration config = ctx.getConfiguration(); final LoggerConfig loggerConfig = config.getLoggerConfig(logger.getName()); loggerConfig.setLevel(level); ctx.updateLoggers(); } // we have to descend the hierarchy final LoggerContext ctx = LoggerContext.getContext(false); for (final LoggerConfig loggerConfig : ctx.getConfiguration().getLoggers().values()) { if (LogManager.ROOT_LOGGER_NAME.equals(logger.getName()) || loggerConfig.getName().startsWith(logger.getName() + ".")) { Configurator.setLevel(loggerConfig.getName(), level); } } }
if (!loggerConfig.getName().equals(className)) { specificConfig = new LoggerConfig(className, Log4j2LevelAdjuster.this.level, true); specificConfig.setParent(loggerConfig); if (!loggerConfig.getName().equals(category)) { specificConfig = new LoggerConfig(category, Log4j2LevelAdjuster.this.level, true); specificConfig.setParent(loggerConfig);
if (!loggerConfig.getName().equals(className)) { specificConfig = new LoggerConfig(className, Log4j2LevelAdjuster.this.level, true); specificConfig.setParent(loggerConfig); if (!loggerConfig.getName().equals(category)) { specificConfig = new LoggerConfig(category, Log4j2LevelAdjuster.this.level, true); specificConfig.setParent(loggerConfig);
public static void removeAppender(final Logger logger, final Appender appender) { final LoggerContext ctx = (LoggerContext) LogManager.getContext(false); final Configuration config = ctx.getConfiguration(); LoggerConfig loggerConfig = config.getLoggerConfig(logger.getName()); if (!logger.getName().equals(loggerConfig.getName())) { loggerConfig = new LoggerConfig(logger.getName(), logger.getLevel(), true); config.addLogger(logger.getName(), loggerConfig); } loggerConfig.removeAppender(appender.getName()); ctx.updateLoggers(); }
public static void addAppender(final Logger logger, final Appender appender) { final LoggerContext ctx = (LoggerContext) LogManager.getContext(false); final Configuration config = ctx.getConfiguration(); config.addAppender(appender); LoggerConfig loggerConfig = config.getLoggerConfig(logger.getName()); if (!logger.getName().equals(loggerConfig.getName())) { loggerConfig = new LoggerConfig(logger.getName(), logger.getLevel(), true); config.addLogger(logger.getName(), loggerConfig); } loggerConfig.addAppender(appender, null, null); ctx.updateLoggers(); }
public static void removeAppender(final Logger logger, final Appender appender) { final LoggerContext ctx = (LoggerContext) LogManager.getContext(false); final Configuration config = ctx.getConfiguration(); LoggerConfig loggerConfig = config.getLoggerConfig(logger.getName()); if (!logger.getName().equals(loggerConfig.getName())) { loggerConfig = new LoggerConfig(logger.getName(), logger.getLevel(), true); config.addLogger(logger.getName(), loggerConfig); } loggerConfig.removeAppender(appender.getName()); ctx.updateLoggers(); }
public static void addAppender(final Logger logger, final Appender appender) { final LoggerContext ctx = (LoggerContext) LogManager.getContext(false); final Configuration config = ctx.getConfiguration(); config.addAppender(appender); LoggerConfig loggerConfig = config.getLoggerConfig(logger.getName()); if (!logger.getName().equals(loggerConfig.getName())) { loggerConfig = new LoggerConfig(logger.getName(), logger.getLevel(), true); config.addLogger(logger.getName(), loggerConfig); } loggerConfig.addAppender(appender, null, null); ctx.updateLoggers(); }
public static void addAppender(final Logger logger, final Appender appender) { final LoggerContext ctx = (LoggerContext) LogManager.getContext(false); final Configuration config = ctx.getConfiguration(); config.addAppender(appender); LoggerConfig loggerConfig = config.getLoggerConfig(logger.getName()); if (!logger.getName().equals(loggerConfig.getName())) { loggerConfig = new LoggerConfig(logger.getName(), logger.getLevel(), true); config.addLogger(logger.getName(), loggerConfig); } loggerConfig.addAppender(appender, null, null); ctx.updateLoggers(); }
public static void removeAppender(final Logger logger, final Appender appender) { final LoggerContext ctx = (LoggerContext) LogManager.getContext(false); final Configuration config = ctx.getConfiguration(); LoggerConfig loggerConfig = config.getLoggerConfig(logger.getName()); if (!logger.getName().equals(loggerConfig.getName())) { loggerConfig = new LoggerConfig(logger.getName(), logger.getLevel(), true); config.addLogger(logger.getName(), loggerConfig); } loggerConfig.removeAppender(appender.getName()); ctx.updateLoggers(); }