GUI中带有Pax记录的Log4J

时间:2018-07-30 17:22:24

标签: java javafx log4j osgi

我有一个OSGI / Maven设置,它使用Log4J和带有附加程序的Pax-Logging片段按需要命名文件,然后登录到文件和控制台。我想将此片段捆绑作为服务公开,以便我也可以将日志发布到gui,但是片段无法启动。

我正在寻找一种继续使用log4j的方法,这样我就不必手动将服务提供给每个捆绑软件,而且还可以在编写日志时访问日志,因此可以将其写入GUI捆绑软件以及日志文件。将某种挂钩插入日志队列,或将日志拖到新队列中。

到目前为止,我唯一的解决方案是从文件写入时读取文件,这至少可以说是不理想的;或者转储log4j并将捆绑包日志记录服务传递给每个将使用日志记录的捆绑包,然后使用日志记录服务包同时写入文件和GUI。如果可能的话,我想避免创建该依赖项。

这是Java 8,intelli-j

1 个答案:

答案 0 :(得分:0)

您不需要碎片捆绑包。只需安装pax-logging-api和pax-logging-log4j2捆绑包。它包括与所有主要日志记录前端的集成。在您的类内部,您可以像在OSGi外部一样使用日志记录。

对于UI的特殊附加器,您可以使用org.ops4j.pax.logging.spi.PaxAppender接口创建服务。 pax日志记录将自动将其拾取。有关示例,请参见karaf logging module