gpt4 book ai didi

java - 小工具中的Logback+Swing

转载 作者:搜寻专家 更新时间:2023-11-01 01:38:44 25 4
gpt4 key购买 nike

我需要破解一个小工具。它应该读取几个文件并转换它们。现在可以在我的 IDE 中使用了。对于用户,我想添加一个简单显示日志输出的小 UI。

您知道用于 logback 的现成可用的 Swing appender 吗?或者将 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) {}
}
}

您可以将 EchoEncoder 替换为 PatternLayoutEncoder(请参阅 logback 示例文件夹中的 CountingConsoleAppender 示例)。

编码器会将每个事件写入一个字节缓冲区,然后您可以从中提取一个字符串并将其写入您的 JTextPane 或 JTextArea,或您想要的任何内容。

关于java - 小工具中的Logback+Swing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3343612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com