如何将优先级升级到log4j-2?

2024-01-04

我正在尝试将 log4j 升级到 log4j2。我尝试升级的特定代码行是:

log(targetClass, Priority.DEBUG_INT, message, null);

静态场Priority.DEBUG_INT在新版本中不再可用Priority。相反,它看起来像getPriority(Facility facility, org.apache.logging.log4j.Level level)静态方法用于访问priority int值,其中DEBUG可以指定为Level.

然而,这种方法也需要一个Facility待指定。我怎么知道哪个Facility调用时指定getPriority?


旧优先级:https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Priority.html https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Priority.html
新优先级:https://logging.apache.org/log4j/2.x/log4j-core/apidocs/org/apache/logging/log4j/core/net/Priority.html https://logging.apache.org/log4j/2.x/log4j-core/apidocs/org/apache/logging/log4j/core/net/Priority.html
新设施:https://logging.apache.org/log4j/log4j-2.8/log4j-core/apidocs/org/apache/logging/log4j/core/net/Facility.html https://logging.apache.org/log4j/log4j-2.8/log4j-core/apidocs/org/apache/logging/log4j/core/net/Facility.html


假设您正在谈论 Log4j 1Category.log(String, Priority, Object, Throwable) https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Category.html#log(java.lang.String,%20org.apache.log4j.Priority,%20java.lang.Object,%20java.lang.Throwable),看来这些Priority类是相当(如果不是完全)不相关的。 Log4j 1的Priority实际上是level(事实上​​它有一个子类Level).

所以你必须看看 Log4j 2Logger https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html类来查看是否有任何方法Level参数匹配,但似乎没有相同的替代方案(除了logMessage https://logging.apache.org/log4j/2.x/log4j-api/apidocs/org/apache/logging/log4j/Logger.html#logMessage-org.apache.logging.log4j.Level-org.apache.logging.log4j.Marker-java.lang.String-java.lang.StackTraceElement-org.apache.logging.log4j.message.Message-java.lang.Throwable-也许吧,但这似乎是相当低的水平)。

但是,您应该检查是否targetClass参数的参数callerFQCN是实际需要的。看起来它的目的是找到 logger 方法的调用者,并且可能主要供扩展 Log4j 1 的日志库使用。除非您确实正在升级此类库,否则我会假设该方法被误用并且是常规 Log4j 2logger.debug(message)也会做得同样好。不过,如果您能提供更多背景信息,那还是会有帮助的。

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

如何将优先级升级到log4j-2? 的相关文章

随机推荐

  • 客户端IP地址的最大长度[重复]

    这个问题在这里已经有答案了 可能的重复 IPv6 地址的文本表示的最大长度 https stackoverflow com questions 166132 maximum length of the textual representat
  • 如何在 UPDATE 语句中使用用户定义的变量?

    我试图回答另一个所以问题 https stackoverflow com questions 18404726并突然面临以下问题 分数应分配给得分最高的 3 个 mrk 组 grp 每个班级 sec 得分最高的组得5分 排名第二的组得3分
  • Hibernate Embedded/Embeddable 不为空异常

    在拥有类中 Embedded private LatLon location 在引用的类中 Embeddable public class LatLon implements Serializable private double lat
  • 使用子查询更新

    我的查询有问题 我有一张巨大的桌子 上面有来自德国的邮政编码 名为 Postleitzahlen 还有另一张名为 Firmen 的公司表 结构是这样的 Firmen ID City State ZipCode Postleitzahlen
  • Tensorflow:在单次运行中分配多个变量值,无需重新计算其他表达式

    我是 Tensorflow 的新手 很抱歉 因为这似乎是一个非常基本的问题 但不幸的是我在 Google 上找不到任何内容 也许我使用了错误的关键字 我有一些从占位符派生的表达式 据我了解张量流的逻辑 以及一些需要在不重新计算 占位符 表达
  • RecyclerView 中的 NullPointEreException

    我尝试从 AsyncTask 中的服务器下载列表并将其放入 recyclerView 中 但是 我仍然在 RecyclerView 上收到 NullPointException 并且不知道为什么 我设置了 LayoutManager 和其他
  • 根据相似度对图像进行聚类

    我面临着基于相似性的图像聚类问题 而不知道聚类的数量 理想情况下 我想实现类似这样的目标http cs231n github io assets cnnvis tsne jpeg http cs231n github io assets c
  • 无法解析相应的jni函数

    我正在制作一个通过串口发送数据的应用程序 这需要从本机库调用方法 我有两个本机方法 打开 关闭 我使用 ndk 生成了 so 库并将它们放入 jnilibs 文件夹中 但仍然给出错误 无法解析相应的 jni 函数 串口 c include
  • 如何使这种组合/排列方法递归?

    我有一个字符串数组列表 希望将所有可能的组合存储到另一个集合中 例如 air bus car gt air bus car air bus air car bus air bus car car air car bus air bus ca
  • 如何监视另一个应用程序的数据库的更改?

    我想监视另一个应用程序 SQLite 数据库的更改 由于 Android 不允许我访问其他应用程序的内部数据 因此我需要一个根应用程序 这正是我的应用程序 有没有办法可以监视系统上文件的更改并在我的应用程序中触发事件 我用谷歌搜索了一下 看
  • jQuery 颜色选择器推荐 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要非常轻的 jquery 颜色选择器插件 它允许用户将鼠标拖动到色轮上 并能够选择透明颜色 或 空白 无 有什么建议么 我从谷歌得到了
  • 如何简洁地编写包含数据框中许多变量的公式?

    假设我有一个响应变量和一个包含三个协变量的数据 作为玩具示例 y c 1 4 6 d data frame x1 c 4 1 3 x2 c 3 9 8 x3 c 4 4 2 我想对数据进行线性回归 fit lm y d x1 d x2 d
  • 如何在当前机器上运行jvm

    想象一下 两个 java 项目在 JDK1 5 和 JDK1 6 上运行 其中两个是在 JDK 1 7 上工作的 如何获取正在运行的jvm名称 pid和项目名称就可以了 结果应该是这样的 pid 1234 projec tname prj1
  • iOS:失去蓝牙连接

    我成功地使用蓝牙连接了 iPhone 和 Mac iPhone 是中心 Mac 是外围 连接后 两者可以通信 iPhone 订阅了 Mac 宣传的一些特性 但是 一段时间 随机 之后 iPhone 的蓝牙图标变灰 并且 iPhone 不再接
  • 调用未定义的方法 Illuminate\Foundation\Application::bindShared()

    我刚刚将 Laravel 从 5 0 升级到 5 1 我收到此错误 Call to undefined method Illuminate Foundation Application bindShared 因此 经过一番搜索后 我需要将b
  • 内置变量中的可变默认参数

    我们都知道 可怕的可变默认参数 https stackoverflow com questions 1132941 least astonishment and the mutable default argument 我惊讶地发现至少有一
  • 使用非 SQL 数据库是否就无需防范“SQL 注入”?

    这似乎是一个显而易见 或不那么明显 的问题 但让我解释一下 我正在使用 Google 的数据库技术 BigTable 编写 Google App Engine 网站 任何 App Engine 程序员都会知道 Google 有自己的有限查询
  • 在 Git Web hook 之后重新启动 Plesk 17.5 上的 Node 应用程序

    目前 我在 Plesk 17 5 中的一个非常基本的 NodeJS 服务器上设置了自动 Git 部署 问题是 如果我推送新的提交 我需要手动登录 Plesk 仪表板并单击 重新启动应用程序 否则更改不会生效 我尝试添加npm start作为
  • 关于在画布上显示照片是否存在已知的 Win32 Tkinter 错误?

    我注意到 tkinter 有一个非常奇怪的错误 我想知道这是否是因为 python 与 tcl 交互的方式有问题 至少在 Win32 中是这样 这里我有一个超级简单的程序 可以显示 gif 图像 它工作完美 from Tkinter imp
  • 如何将优先级升级到log4j-2?

    我正在尝试将 log4j 升级到 log4j2 我尝试升级的特定代码行是 log targetClass Priority DEBUG INT message null 静态场Priority DEBUG INT在新版本中不再可用Prior