/** * Creates console appender with some reasonable default logging settings. * * @return Logger with auto configured console appender. */ public Logger createConsoleLogger() { // from http://logging.apache.org/log4j/2.x/manual/customconfig.html final LoggerContext ctx = impl.getContext(); final Configuration cfg = ctx.getConfiguration(); PatternLayout.Builder builder = PatternLayout.newBuilder() .withPattern("%d{ISO8601}][%-5p][%t][%c{1}] %m%n") .withCharset(Charset.defaultCharset()) .withAlwaysWriteExceptions(false) .withNoConsoleNoAnsi(false); PatternLayout layout = builder.build(); ConsoleAppender.Builder consoleAppenderBuilder = ConsoleAppender.newBuilder() .withName(CONSOLE_APPENDER) .withLayout(layout); ConsoleAppender consoleApp = consoleAppenderBuilder.build(); consoleApp.start(); cfg.addAppender(consoleApp); cfg.getRootLogger().addAppender(consoleApp, Level.TRACE, null); ctx.updateLoggers(cfg); return ctx.getRootLogger(); }
@Override public void activateConsoleAppender(String target, String encoding) { org.apache.logging.log4j.core.Layout layout = org.apache.logging.log4j.core.layout.PatternLayout.newBuilder(). withConfiguration(configuration) .withPattern(LoggerHelper.getPattern()) .withCharset(Charset.forName(encoding)) .build(); org.apache.logging.log4j.core.appender.ConsoleAppender appender = ConsoleAppender.createAppender(layout, null, ConsoleAppender.Target.valueOf(target.toUpperCase().replace(".", "_")), "LoggerApiConsoleAppender", false, false, true); appender.start(); removeAllAppenders(logger); logger.addAppender(appender); setProductName(productName); }
public static GeodeConsoleAppender createDefaultAppenderForLayout( final Layout<? extends Serializable> layout) { // this method cannot use the builder class without introducing an infinite loop due to // DefaultConfiguration return new GeodeConsoleAppender(PLUGIN_NAME + "-" + COUNT.incrementAndGet(), layout, null, getDefaultManager(DEFAULT_TARGET, false, false, layout), true, false, false, ConsoleAppender.createDefaultAppenderForLayout(layout)); }
/** * Tests https://issues.apache.org/jira/browse/LOG4J2-1636 * * Tested with Oracle 7 and 8 and IBM Java 8. */ @Test public void testDefaultLayoutDefaultCharset() { final ConsoleAppender appender = ConsoleAppender.newBuilder().withName("test").build(); final PatternLayout layout = (PatternLayout) appender.getLayout(); final String charsetName = System.getProperty("sun.stdout.encoding"); final String expectedName = charsetName != null ? charsetName : Charset.defaultCharset().name(); Assert.assertEquals(expectedName, layout.getCharset().name()); }
private void testFollowSystemPrintStream(final PrintStream ps, final Target target, final SystemSetter systemSetter) { final ConsoleAppender app = ConsoleAppender.newBuilder().setTarget(target).setFollow(true) .withIgnoreExceptions(false).withName("test").build(); Assert.assertEquals(target, app.getTarget()); app.start(); try { final LogEvent event = Log4jLogEvent.newBuilder() // .setLoggerName("TestLogger") // .setLoggerFqcn(ConsoleAppenderTest.class.getName()) // .setLevel(Level.INFO) // .setMessage(new SimpleMessage("Test")) // .build(); assertTrue("Appender did not start", app.isStarted()); systemSetter.systemSet(new PrintStream(baos)); try { app.append(event); } finally { systemSetter.systemSet(ps); } final String msg = baos.toString(); assertNotNull("No message", msg); assertTrue("Incorrect message: \"" + msg + "\"", msg.endsWith("Test" + Strings.LINE_SEPARATOR)); } finally { app.stop(); } assertFalse("Appender did not stop", app.isStarted()); }
ConsoleAppender consoleAppender = ConsoleAppender.createDefaultAppenderForLayout(patternLayout); consoleAppender.start(); addAppender(consoleAppender); RollingRandomAccessFileAppender randomAccessFileAppender;
@Override public void run() { LoggerConfig rootLogger = ((AbstractConfiguration) context.getConfiguration()).getRootLogger(); Collection<Appender> appenders = new ArrayList<>(); appenders.add(ConsoleAppender.createAppender(mock(Layout.class), null, null, "Console", null, null)); when(rootLogger.getAppenders().values()).thenReturn(appenders); contextConfigurer.configure(context); verify(context.getConfiguration(), never()).addAppender(any(ConsoleAppender.class)); verify(rootLogger, never()).addAppender(any(ConsoleAppender.class), same(Level.INFO), any(Filter.class)); } });
/** * Tests https://issues.apache.org/jira/browse/LOG4J2-1620 */ @Test public void testDefaultImmediateFlush() { Assert.assertTrue(ConsoleAppender.newBuilder().isImmediateFlush()); }
@Override public void start() { LOGGER.info("Starting {}.", this); delegate.start(); super.start(); }
@Override public void stop() { LOGGER.info("Stopping {}.", this); delegate.stop(); super.stop(); }
@Override public void append(final LogEvent event) { if (isPaused()) { return; } delegate.append(event); if (debug) { events.add(event); } }
private void testConsoleStreamManagerDoesNotClose(final PrintStream ps, final Target targetName, final SystemSetter systemSetter) { try { systemSetter.systemSet(psMock); final Layout<String> layout = PatternLayout.newBuilder().withAlwaysWriteExceptions(true).build(); final ConsoleAppender app = ConsoleAppender.newBuilder().withLayout(layout).setTarget(targetName) .withName("Console").withIgnoreExceptions(false).build(); app.start(); assertTrue("Appender did not start", app.isStarted()); final LogEvent event = Log4jLogEvent.newBuilder() // .setLoggerName("TestLogger") // .setLoggerFqcn(ConsoleAppenderTest.class.getName()) // .setLevel(Level.INFO) // .setMessage(new SimpleMessage("Test")) // .build(); app.append(event); app.stop(); assertFalse("Appender did not stop", app.isStarted()); } finally { systemSetter.systemSet(ps); } then(psMock).should(atLeastOnce()).write(any(byte[].class), anyInt(), anyInt()); then(psMock).should(atLeastOnce()).flush(); }
public void configure() { PatternLayout.Builder patternBuilder = PatternLayout.newBuilder(); patternBuilder.withPattern("%d %p %c{1.}: %m%n"); PatternLayout layout = patternBuilder.build(); ConsoleAppender consoleAppender = ConsoleAppender.createDefaultAppenderForLayout(layout); consoleAppender.start(); Configuration configuration = ((LoggerContext) LogManager.getContext(false)).getConfiguration(); LoggerConfig rootLogger = configuration.getRootLogger(); rootLogger.setLevel(Level.INFO); rootLogger.addAppender(consoleAppender, Level.INFO, null); } }
Appender consoleErrorAppender = ConsoleAppender.createAppender(layout, null, "SYSTEM_ERR", "ConsoleError", "false", "false"); config.addAppender(consoleErrorAppender); Appender consoleWarnAppender = ConsoleAppender.createAppender(layout, consoleWarnFilter, "SYSTEM_OUT", "ConsoleWarn", "false", "false"); config.addAppender(consoleWarnAppender);
private void forceConsoleAppender(MuleLoggerContext context) { doAddAppender(context, ConsoleAppender.newBuilder() .withLayout(createLayout(context.getConfiguration())) .withName(FORCED_CONSOLE_APPENDER_NAME) .build()); }
private ConsoleAppender consoleAppender(Properties properties) { SystemPropertiesGetter propertiesGetter = new SystemPropertiesGetter(properties); String logPattern = propertiesGetter.getProperty( SOFA_MIDDLEWARE_LOG_CONSOLE_LOG4J2_PATTERN, SOFA_MIDDLEWARE_LOG_CONSOLE_LOG4J2_PATTERN_DEFAULT); ConsoleAppender.Builder builder = ConsoleAppender.newBuilder(); builder.withLayout(PatternLayout.newBuilder().withPattern(logPattern).build()).withName( SOFA_CONSOLE); ConsoleAppender consoleAppender = builder.build(); consoleAppender.start(); return consoleAppender; }
@Override public void activateConsoleAppender(String target, String encoding) { org.apache.logging.log4j.core.Layout layout = org.apache.logging.log4j.core.layout.PatternLayout.newBuilder(). withConfiguration(configuration) .withPattern(LoggerHelper.getPattern()) .withCharset(Charset.forName(encoding)) .build(); org.apache.logging.log4j.core.appender.ConsoleAppender appender = ConsoleAppender.createAppender(layout, null, ConsoleAppender.Target.valueOf(target.toUpperCase().replace(".", "_")), "LoggerApiConsoleAppender", false, false, true); appender.start(); removeAllAppenders(logger); logger.addAppender(appender); setProductName(productName); }
public void configure() { PatternLayout.Builder patternBuilder = PatternLayout.newBuilder(); patternBuilder.withPattern("%d %p %c{1.}: %m%n"); PatternLayout layout = patternBuilder.build(); ConsoleAppender consoleAppender = ConsoleAppender.createDefaultAppenderForLayout(layout); consoleAppender.start(); Configuration configuration = ((LoggerContext) LogManager.getContext(false)).getConfiguration(); LoggerConfig rootLogger = configuration.getRootLogger(); rootLogger.setLevel(Level.INFO); rootLogger.addAppender(consoleAppender, Level.INFO, null); } }
private void forceConsoleAppender(MuleLoggerContext context) { Appender appender = ConsoleAppender.createAppender(createLayout(context.getConfiguration()), null, null, FORCED_CONSOLE_APPENDER_NAME, null, null); doAddAppender(context, appender); }
public static ConsoleAppender makeConsoleAppender(PatternLayout layout, String name) { return ConsoleAppender.newBuilder() .withLayout(layout) .withBufferedIo(true) .withName(name) .build(); }