java桌面程序配置log4j_java-将log4j重定向到swing中的桌面应用程序

我有一个在NetBeans中实现的GUI应用程序.对于用户输入提供的各种功能,使用了一个jar,它使用log4j进行日志记录.一切正常,但是我必须将信息从log4j重定向到GUI中的文本区域.我发现要从log4j重定向到摇摆文本区域,必须扩展一个AppenderSkeleton.我的问题是我无法修改gui(例如,具有扩展AppenderSkeleton的JTextArea),因此我必须具有一个附加到我的JTextarea的类.现在,我的应用程序在log4j之前初始化.我的问题是我找不到一种方法来设置AppenderSkeleton自定义类的属性,该属性是对gui的jtextarea的引用,因此,当log4j初始化附加程序时,它将传递对应用程序文本区域的引用.

我在log4J配置文件中尝试过以下内容:

log4j.appender.myAppender.theTextArea = path.to.myFrameclass.theTextArea

希望log4j会在我的附加程序中调用setter,并从我的框架中调用getter来设置文本区域,但这是行不通的.

我该如何通过Log4j初始化附加程序,将信息重定向到我的应用程序?

还是我的应用程序有一种方法可以初始化自定义附加程序并通知log4j将其用于日志记录?

谢谢!

最佳答案

最简单的选项是在GUI初始化后以编程方式添加您的附加程序.像这样:

Logger.getRootLogger().addAppender(yourTextAreaAppender);

编辑:要仅记录信息级别,请执行以下操作:

yourTextAreaAppender.addFilter(new Filter() {

@Override

public int decide(LoggingEvent event) {

if (event.getLevel().equals(Level.INFO)) {

return ACCEPT;

} else {

return DENY;

}

}

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值