Skip to content

Instantly share code, notes, and snippets.

@qingl97
Created January 15, 2016 23:45
Show Gist options
  • Save qingl97/91c2c777a32101dbcf01 to your computer and use it in GitHub Desktop.
Save qingl97/91c2c777a32101dbcf01 to your computer and use it in GitHub Desktop.
private void setupLoggingOutputStream() {
// get LoggerContext from slf4j
LoggerContext context = (LoggerContext) LoggerFactory.getILoggerFactory();
// Encoder
PatternLayoutEncoder encoder = new PatternLayoutEncoder();
encoder.setContext(context);
encoder.setPattern("%d{HH:mm:ss} %-5level %logger{36} - %msg%n");
encoder.start();
OutputStreamAppender<ILoggingEvent> logAppender = new OutputStreamAppender<ILoggingEvent>();
logAppender.setName("Status zone logging appender");
logAppender.setContext(context);
logAppender.setEncoder(encoder);
logAppender.setOutputStream(new PrintStream(new TextAreaOutputStream(statusZoneCtl.getLogTextArea())));
logAppender.start();
Logger rootLogger = (Logger) LoggerFactory.getLogger(Logger.ROOT_LOGGER_NAME);
rootLogger.addAppender(logAppender);
}
import java.io.IOException;
import java.io.OutputStream;
import javafx.scene.control.TextArea;
public class TextAreaOutputStream extends OutputStream {
private TextArea textArea;
public TextAreaOutputStream(TextArea ta) {
textArea = ta;
}
@Override
public void write(int b) throws IOException {
textArea.appendText(String.valueOf((char)b));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment