Log4j JDK 日志适配器:在启动过程后期应用 LogManager 系统属性

2023-12-07

我有一个运行 Web 应用程序的 WebSphere 应用程序服务器。我从 Eclipse 启动服务器。该应用程序中的主要日志记录框架是 log4j2,但也有一些使用 java.util.logging 的第三方库。我想将这些日志重定向到 log4j2,以便它使用我的过滤器、日志格式等。为了实现这一点,我可以使用Log4j JDK 日志适配器.

通常我们会设置系统属性-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager,例如在 jvm.options 中。问题是我似乎无法使该解决方案起作用,因为服务器在加载我的 log4j2 属性之前和之前就使用了 java util 日志记录log4j-jul适配器的 jar 已加载。这会导致尝试启动服务器后立即抛出异常(请参阅我的其他问题).

所以我想也许可以设置LogManager到一个来自log4j-juljar 稍后在启动过程中,当 jar 和我的 log4j2 属性加载时?


一旦java.util.logging.LogManager加载后(第 174 行附近)它会分配单例实例。触发加载后没有办法替换。

安装org.apache.logging.log4j.jul.Log4jBridgeHandler应该可以解决问题。您应该能够使用默认 LogManager 将该处理程序添加到根记录器WebSphere.

通常这可以通过将以下内容添加到您的logging.properties中来完成:

.handlers=org.apache.logging.log4j.jul.Log4jBridgeHandler
.level.INFO
org.apache.logging.log4j.jul.Log4jBridgeHandler.level=ALL

Per LOG4J2-2025这在 LOG4J2 版本 3.0.0 中已修复。截至 2021 年 10 月 23 日,此问题似乎已向后移植LOG4J2-2025 jul-log4j 桥处理程序进入2.15.0。对于 LOG4J2 2.3,您可以使用log4j2-Java6-extras or 从 Maven 下载 log4j2-Java6-extras.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Log4j JDK 日志适配器:在启动过程后期应用 LogManager 系统属性 的相关文章

随机推荐

  • uipickerview swift 3 中的国家/地区列表

    我用谷歌搜索如何找到国家列表并尝试实施PickerView 但我陷入了我尝试做的这一点countries count它给了我一个错误 无法将 int 类型的返回表达式转换为 string 类型的返回表达式 有什么建议么 import UIK
  • 如何在 iOS 上截取代码截图? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 如何从代码中截取屏幕截图 http www iphonedevsdk com forum iphone sdk development 2353 possible make sc
  • 查找UDP数据包的源IP/进程

    我在用recvfrom 在我的 C 程序中接收来自多个客户端的 UDP 数据包 这些客户端可以使用自定义用户名登录 一旦他们登录 我希望他们的用户名与唯一的客户端进程配对 这样服务器就可以根据数据包的来源自动知道用户是谁 我如何从收到的数据
  • Android viewpager 检测滑动超出范围

    在我的 Android 应用程序中 我使用 viewpager 进行图像滑动 我的要求是 如果用户滑出第一页和最后一页 则活动应该完成 我已经采取了这个example 但方法setOnSwipeOutListener在我的活动中没有被调用
  • 通过 segue 传递变量? Xcode 8 斯威夫特 3

    所以我正在创建一个闹钟 一个视图控制器是表视图 另一个视图控制器由带有提交按钮的 UIDatePicker 组成 目标是当用户单击提交按钮时 它将日期保存在日期选择器上 除了保存日期之外 它还是表视图控制器的一个序列 我正在尝试显示保存为单
  • Windows API 代码包 TaskDialog 缺少图标

    我的图标TaskDialog缺失 And in the taskbar 我的代码是这样的 using Microsoft WindowsAPICodePack using Microsoft WindowsAPICodePack Dialo
  • 如何编写(flutter web)代码以便 JavaScript 文件在我的本地计算机上运行?

    我构建了一个简单的 flutter web 应用程序 它在 github io 和localhost server flutter run d chrome 如果我创建一个发布版本 flutter build web 将应用程序转换为 基本
  • 页面对象 gem:根据可见性识别具有相同属性的对象

    我有一个包含以下 html 的文本框 这id是动态的 我无法使用它 我在文本框中填写了一些文本
  • SQL 网络接口,错误:26 - 定位为 MD​​F 文件指定的服务器/实例时出错

    我添加了一个数据库文件 mdf 使用 Visual Studio 内置功能添加到我的应用程序 数据库位于App Data文件夹 它运行良好 但是当我发布它并将其上传到服务器时 它会出现此错误 发生网络相关或特定于实例的错误 建立与 SQL
  • 如何减少 p:ajax 期间的请求负载p:数据表分页

    我正在使用 JSF 2 2 和 Primefaces 5 1 有一个可编辑的 primefaces 数据表 启用了分页
  • 如何根据其他列向列添加值

    在 pandas 中 如何根据其他列中的字符串向列添加值 类似于二维切片操作 例如 有一个像这样的数据框 df pd DataFrame name foo foo bar bar colx 1 2 3 4 coly 5 6 7 8 如何将
  • 完全更改当前 PowerShell 会话的语言(包括文化)

    我的Win 10系统有西班牙语 我的意思是完全用英语操作 PowerShell 会话 在我尝试过的一切 见下文 中 我设法改变了UICulture to en US对于当前会话 但不是Culture 有什么办法可以永久改变Culture对于
  • 将 OnClick 事件添加到 ASP.NET 控件

    我想创建OnClick为我的活动panel 到目前为止 大多数谷歌结果看起来或多或少是这样的 将 onclick 事件添加到 aspnet 标签 有什么方法可以从 javascript 或面板属性调用代码隐藏函数吗 因为我想将用户重定向到新
  • 如何启动 PHP 类并在多个文件中使用它?

    我现在很困惑 在我关于这个问题的上一篇文章中 答案是使用单例来确保对象仅启动一次 但我遇到了相反的问题 如果我有一个名为索引 php然后我将这些文件包含进去 类1 php 类2 php 类3 php 类4 php In 索引 php我会有
  • 具有多个条件的 COUNTIF

    您能告诉我如何在多个条件下使用 COUNTIF 吗 我的提案 左 显示了一项标准 不同区域 的公式 但是 我有兴趣计算每个不同月份的不同区域 两个标准 右侧 期望的结果 您可以使用COUNTIFS instead 1 COUNTIFS A
  • 为什么无穷大在 Windows 10 控制台中打印为“8”?

    我正在测试除法返回的内容 包括零 即0 1 1 0 and 0 0 为此 我使用了类似于以下内容的内容 Console WriteLine 1d 0d 然而这段代码打印8 not Infinity或其他一些字符串常量 例如PositiveI
  • PropertyGrid - 根据另一个属性值更改下拉属性编辑器的项目

    我正在尝试在自定义组件中实现下拉属性 并且我使用了这个答案 and 这个答案作为指导 到目前为止 我设法让它工作 并在下拉列表中使用预定义的项目 但我仍然需要弄清楚如何更改下拉列表中的项目 这是我到目前为止的代码 从上面提到的链接构建 Ty
  • 静态javascript未在jade中呈现(使用express/node.js)

    我希望你一切都好 我突然无法在 jade 模板中渲染任何外部 javascript 为了弄清楚事情的真相 我将其精简到最低限度 节点0 6 11 Express 2 5 8 jade 0 20 3 app js var express re
  • 协调两个对象集合

    我有一个表单 用户可以在其中使用 DataGrid 修改对象集合 打开表单时 我会创建原始集合的深层副本 如果按下 取消 按钮 我只会丢弃该副本 问题是 当按下 确定 按钮时 我必须协调可能的更改 修改现有对象的属性 新对象添加到集合中的任
  • Log4j JDK 日志适配器:在启动过程后期应用 LogManager 系统属性

    我有一个运行 Web 应用程序的 WebSphere 应用程序服务器 我从 Eclipse 启动服务器 该应用程序中的主要日志记录框架是 log4j2 但也有一些使用 java util logging 的第三方库 我想将这些日志重定向到