Logging Log4j JDK日志适配器:在启动过程的后期应用LogManager系统属性
我有一个运行WebApp的websphereapplicationserver。我从Eclipse启动服务器。该应用程序中的主要日志框架是log4j2,但是有些第三方库使用java.util.logging。我想将这些日志重定向到log4j2,以便它使用我的过滤器、日志格式等。为了实现这一点,我可以使用 通常会设置系统属性Logging Log4j JDK日志适配器:在启动过程的后期应用LogManager系统属性,logging,websphere,log4j2,websphere-liberty,java.util.logging,Logging,Websphere,Log4j2,Websphere Liberty,Java.util.logging,我有一个运行WebApp的websphereapplicationserver。我从Eclipse启动服务器。该应用程序中的主要日志框架是log4j2,但是有些第三方库使用java.util.logging。我想将这些日志重定向到log4j2,以便它使用我的过滤器、日志格式等。为了实现这一点,我可以使用 通常会设置系统属性-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager,例如在jvm.options中。问题是,
-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager
,例如在jvm.options中。问题是,我似乎无法使该解决方案工作,因为服务器在加载log4j2属性和适配器的log4jjul
jar之前很久就使用了java-util日志记录。这会导致在尝试启动服务器后立即抛出异常(请参阅my)
所以我想,在启动过程的后期,当jar启动并加载我的log4j2属性时,是否可以将LogManager
设置为log4j-jul
jar中的一个 一旦加载(在第174行附近),它就会分配singleton实例。触发加载后无法更换
安装应该可以做到这一点。您应该能够使用默认的LogManager将该处理程序添加到根日志记录器
通常,可以通过将以下内容添加到logging.properties中来完成此操作:
.handlers=org.apache.logging.log4j.jul.Log4jBridgeHandler
.level.INFO
org.apache.logging.log4j.jul.Log4jBridgeHandler.level=ALL
根据,这在LOG4J2版本3.0.0中是固定的。截至2019年4月25日,这似乎是一个未来版本。对于log4j22.3,您可以使用or。我很困惑-从您的链接来看,Log4jBridgeHandler似乎是log4jjul的一部分,但是我下载了最后两个版本的jar,里面没有这样的类。findjar也没有该类的结果。你能告诉我怎样才能得到这门课吗?或者我应该只是代码复制它?现在我用Log4jBridgeHandler类的代码副本测试了它,它工作得很好!