为了账号安全,请及时绑定邮箱和手机立即绑定

在 Websphere WebApp 中将 JUL 重定向到 Log4J2

在 Websphere WebApp 中将 JUL 重定向到 Log4J2

暮色呼如 2022-10-20 17:17:05
我有一个运行 WebApp 的 WebSphere Application Server。我从 Eclipse 启动服务器。该应用程序中的主要日志框架是 log4j2,但也有一些第三方库使用 java.util.logging。我想将这些日志重定向到 log4j2,以便它使用我的过滤器、日志格式等。我已经在这里和这里问过关于这个话题的问题。首先,我尝试通过将 java util设置为 log4j-jul jar 提供的方法来使用 apache 建议的方法。LogManager如第一个链接问题所示,这在我的用例中并不适用。因为应用程序在 Websphere 服务器中作为 WebApp 运行,所以实际上并没有加载 log4j-jul jar 并且我可以换出LogManager, 但在任何调用 java util 之前Logger或者LogManager因为服务器使用这些在加载 jar 并配置我的 Log4J2 设置之前记录语句。然后我尝试Log4jBridgeHandler按照第二个链接问题中的建议使用。起初我认为这很有效,因为我的测试 java util Log 语句以我当前的 Log4j2 格式打印。不过,这种方法确实有两个问题:我不能使用设置处理程序和级别的方式,logging.properties因为它根本没有效果(我已经通过文件中的系统属性设置了logging.properties文件的路径)。java.util.logging.config.filejvm.options帮助的是使用 的install()方法Log4jBridgeHandler,因为这使得 java util 日志以我的 Log4j2 格式打印。但是我创建的 java utilLogger没有所需的级别,ALL而是 default INFO,尽管根记录器具有正确的级别。因此,java util 日志记录函数中的默认守卫阻止了桥接器被输入,因此我永远无法记录低于该INFO级别的任何内容。所以是的,我没有主意。我做错什么了吗?我所做的应该有效吗?
查看完整描述

1 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

我做错什么了吗?我所做的应该有效吗?

Log4jBridgeHandler 执行从 LOG4J2 到 JUL 的级别传播。尝试在 log4j2.xml 中添加一个记录器条目来设置命名记录器的级别。

在您的 logging.properties 中,您可以通过以下方式关闭它:

org.apache.logging.log4j.jul.Log4jBridgeHandler.propagateLevels=false


查看完整回答
反对 回复 2022-10-20
  • 1 回答
  • 0 关注
  • 127 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信