Skip to content

Instantly share code, notes, and snippets.

@mguymon
Created September 27, 2013 02:31
Show Gist options
  • Save mguymon/6723434 to your computer and use it in GitHub Desktop.
Save mguymon/6723434 to your computer and use it in GitHub Desktop.
ByteArrayOutputStream stream = new ByteArrayOutputStream();
PrintStream printStream = new PrintStream(stream);
printStream.print("initial text");
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setContext(context);
encoder.setPattern("%d{HH:mm:ss} %-5level %logger{36} - %msg%n");
encoder.start();
OutputStreamAppender<ILoggingEvent> appender= new OutputStreamAppender<>();
appender.setName( "OutputStream Appender" );
appender.setContext(context);
appender.setOutputStream(printStream);
appender.setEncoder(encoder);
appender.start();
Logger log = context.getLogger(this.getClass());
log.addAppender(appender);
log.info( "text from logger");
@tony19
Copy link

tony19 commented Nov 9, 2013

I tried your example snippet above, but I'm not seeing any exceptions. The status output you've shown above is actually from file:/home/zinger/devel/projects/den/inventory_manager/target/test-classes/logback-test.xml and not from the Java snippet. The warning message right before the NPE is worth investigating:

22:28:18,861 |-WARN in ch.qos.logback.core.OutputStreamAppender[OutputStream Appender] - Encoder has not been set. Cannot invoke its init method.
22:28:18,867 |-ERROR in ch.qos.logback.core.OutputStreamAppender[OutputStream Appender] - Appender [OutputStream Appender] failed to append. java.lang.NullPointerException
at java.lang.NullPointerException

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment