首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将优先级升级到log4j-2?

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

Stack Overflow用户
提问于 2021-02-12 01:20:06
回答 1查看 182关注 0票数 0

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

代码语言:javascript
复制
log(targetClass, Priority.DEBUG_INT, message, null);

静态字段Priority.DEBUG_INT在新的Priority中不再可用。相反,它看起来像是使用getPriority(Facility facility, org.apache.logging.log4j.Level level)静态方法来访问优先级int值,可以将DEBUG指定为Level

但是,此方法还需要指定Facility。如何知道在调用getPriority时应指定哪个Facility

旧的优先级: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/log4j-2.8/log4j-core/apidocs/org/apache/logging/log4j/core/net/Facility.html

EN

回答 1

Stack Overflow用户

发布于 2021-02-25 09:03:43

假设您谈论的是Log4j 1的Category.log(String, Priority, Object, Throwable),那么这些Priority类似乎是完全无关的(如果不是完全相关的话)。Log4j 1的Priority实际上就是这个级别(实际上它有一个子类Level)。

因此,您必须查看Log4j 2的Logger类,以查看是否有任何带有Level参数的方法匹配,但似乎没有相同的替代方法(可能除了logMessage,但这似乎是相当低的级别)。

但是,您应该检查是否确实需要参数callerFQCN targetClass参数。它看起来是为了找到记录器方法的调用者,可能主要是为了通过扩展Log4j 1的日志库来使用。除非您确实在升级这样的库,否则我会假设该方法被误用了,一个常规的Log4j 2 logger.debug(message)也能做得一样好。尽管如此,如果你能提供更多的上下文,它仍然会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66159590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档