@Override protected void setUp() throws Exception { super.setUp(); Logger logger = LoggerFactory.getLogger(LogOrRethrowExceptionHandler.class); writer = new StringWriter(); LoggerContext loggerContext = (LoggerContext) LogManager.getContext(); Configuration configuration = loggerContext.getConfiguration(); LoggerConfig rootLoggerConfig = configuration.getLoggerConfig(logger.getName()); rootLoggerConfig.getAppenders().forEach((name, appender) -> { rootLoggerConfig.removeAppender(name); }); Appender appender = WriterAppender.createAppender(PatternLayout.createDefaultLayout(), null, writer,"TESTWriter", false, false); rootLoggerConfig.addAppender(appender, org.apache.logging.log4j.Level.DEBUG, null); }
@Before public void setUp() throws Exception { // Builder uses PatternLayout.createDefaultLayout() by default, so we get exceptions loggerOut = new StringWriter(); appender = WriterAppender.newBuilder() .setName("Slf4jSelfTestAppender") .setTarget(loggerOut) .build(); LoggerContext context = LoggerContext.getContext(false); Configuration config = context.getConfiguration(); appender.start(); config.addAppender(appender); config.getRootLogger().addAppender(appender, INFO, null); context.updateLoggers(config); logger = LoggerFactory.getLogger(Slf4jSelfTest.class); assertThat(logger, is(instanceOf(Log4jLogger.class))); }
layout = PatternLayout.createDefaultLayout(); return new WriterAppender(name, layout, filter, getManager(target, follow, layout), ignore);
@Override public WriterAppender build() { return new WriterAppender(name, layout, filter, getManager(target, follow, layout), ignoreExceptions); }
private static String logWithSpanAndLog4jConfiguration( String log4jPattern, SpanContext spanContext, Function<Logger, Void> loggingFunction) { StringWriter output = new StringWriter(); StringLayout layout = PatternLayout.newBuilder().withPattern(log4jPattern).build(); Appender appender = WriterAppender.newBuilder() .setTarget(output) .setLayout(layout) .setName("TestAppender") .build(); ((LoggerContext) LogManager.getContext(false)).updateLoggers(); appender.start(); logger.addAppender(appender); logger.setLevel(Level.ALL); try { logWithSpan(spanContext, loggingFunction, logger); return output.toString(); } finally { logger.removeAppender(appender); } }
String addAppender(final Writer writer) { final String name = "openfire-s2s-test-appender-" + StringUtils.randomString( 10 ); final LoggerContext context = LoggerContext.getContext(false); final Configuration config = context.getConfiguration(); final PatternLayout layout = PatternLayout.createDefaultLayout(config); final Appender appender = WriterAppender.createAppender(layout, null, writer, name, false, true); appender.start(); config.addAppender(appender); final Level level = null; final Filter filter = null; for (final LoggerConfig loggerConfig : config.getLoggers().values()) { loggerConfig.addAppender(appender, level, filter); } config.getRootLogger().addAppender(appender, level, filter); return name; }
private void addAppender(final Writer writer, final String writerName) { final LoggerContext context = LoggerContext.getContext(false); final Configuration config = context.getConfiguration(); final PatternLayout layout = PatternLayout.createDefaultLayout(config); final Appender appender = WriterAppender.createAppender(layout, null, writer, writerName, false, true); appender.start(); config.addAppender(appender); ConfigurationTestUtils.updateLoggers(appender, config); }
public static void start() { final LoggerContext context = LoggerContext.getContext(false); final Appender appender = WriterAppender.createAppender(null, null, new LogWriter(), "MEMORY", false, true); appender.start(); final Configuration config = context.getConfiguration(); config.addAppender(appender); for (final LoggerConfig loggerConfig : config.getLoggers().values()) { loggerConfig.addAppender(appender, null, null); } config.getRootLogger().addAppender(appender, Level.ALL, null); context.updateLoggers(); }
@Override public StringWriter addLoggingWriterAppender(String appenderName) { // Get the configuration final LoggerContext loggerContext = (LoggerContext) LogManager.getContext(false); final Configuration configuration = loggerContext.getConfiguration(); // Create a string writer as part of the appender so logging will be written to it. StringWriter stringWriter = new StringWriter(); // Create and start the appender with the string writer. Appender appender = WriterAppender.createAppender(null, null, stringWriter, appenderName, false, true); appender.start(); // Add the appender to the root logger. configuration.getRootLogger().addAppender(appender, null, null); // Return the string writer. return stringWriter; }