Aar*_*lla 4 java user-interface logging swing logback
我需要破解一个小工具.它应该读取几个文件并转换它们.现在,它在我的IDE中工作.对于用户,我想添加一个简单显示日志输出的小UI.
你知道一个现成的Swing appender用于logback吗?或者将System.out重定向到一个只有文本字段和"关闭"按钮的小UI的东西?
PS:我不是在寻找Chainsaw或Jigsaw或Lilith.我想在应用程序中显示日志消息.
您需要编写一个自定义appender类,如下所示:
public class MyConsoleAppender extends AppenderBase<ILoggingEvent> {
private Encoder<ILoggingEvent> encoder = new EchoEncoder<ILoggingEvent>();
private ByteArrayOutputStream out = new ByteArrayOutputStream();
public MyConsoleAppender() {
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
setContext(lc);
start();
lc.getLogger("ROOT").addAppender(this);
}
@Override
public void start() {
try {
encoder.init(out);
} catch (IOException e) {}
super.start();
}
@Override
public void append(ILoggingEvent event) {
try {
encoder.doEncode(event);
out.flush();
String line = out.toString(); // TODO: append _line_ to your JTextPane
out.reset();
} catch (IOException e) {}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用PatternLayoutEncoder替换EchoEncoder(请参阅logback示例文件夹中的CountingConsoleAppender示例).
编码器会将每个事件写入一个字节缓冲区,然后您可以提取一个字符串并将其写入您的JTextPane或JTextArea,或者您想要的任何内容.
归档时间: |
|
查看次数: |
1849 次 |
最近记录: |