/** * @since 9.10 */ public void setConsoleLogThreshold(String level) { if (consoleAppender != null) { return; } Logger rootLogger = LoggerContext.getContext(false).getRootLogger(); consoleAppender = (ConsoleAppender) rootLogger.getAppenders().get(CONSOLE_APPENDER); rootLogger.removeAppender(consoleAppender); ConsoleAppender newAppender = ConsoleAppender.newBuilder() .withName(CONSOLE_LOG_FEATURE_APPENDER) .setTarget(Target.SYSTEM_OUT) .withFilter(ThresholdFilter.createFilter(Level.toLevel(level), null, null)) .build(); newAppender.start(); rootLogger.addAppender(newAppender); hiddenAppender = newAppender; }
/** * Prepare a console logger with a default layout. This allows {@link Logger} * instances to be used while still being useful as the line to prepare logger * can be removed and the default log4j.properties will be correctly listened * to. */ public static void prepareConsoleLogger() { final String PATTERN = "%m\n"; final PatternLayout layout = PatternLayout.newBuilder().withPattern(PATTERN).build(); final ThresholdFilter filter = ThresholdFilter.createFilter(Level.DEBUG, Result.ACCEPT, Result.DENY); final ConsoleAppender console = ConsoleAppender.newBuilder().withName("default-consoleappender") .withLayout(layout).withFilter(filter).build(); // add appender to any Logger (here is root) final Logger root = LogManager.getRootLogger(); if (root instanceof org.apache.logging.log4j.core.Logger) ((org.apache.logging.log4j.core.Logger) root).addAppender(console); }
@Override public GeodeConsoleAppender build() { ConsoleAppender.Builder delegate = new ConsoleAppender.Builder(); // AbstractAppender delegate.withFilter(getFilter()); delegate.withName(getName() + "_DELEGATE"); delegate.withIgnoreExceptions(isIgnoreExceptions()); delegate.withLayout(getLayout()); // AbstractOutputStreamAppender delegate.withImmediateFlush(isImmediateFlush()); delegate.withBufferedIo(isBufferedIo()); delegate.withBufferSize(getBufferSize()); // ConsoleAppender delegate.setTarget(target); delegate.setFollow(follow); delegate.setDirect(direct); Layout<? extends Serializable> layout = getOrCreateLayout(target.getDefaultCharset()); return new GeodeConsoleAppender(getName(), layout, getFilter(), getManager(target, follow, direct, layout), isIgnoreExceptions(), startPaused, debug, delegate.build()); } }