如何将优先级升级到log4j-2?
我正在尝试将log4j升级到log4j2。我尝试升级的特定代码行是:
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
解决方案
假设您谈论的是Log4j1的Category.log(String, Priority, Object, Throwable)
,看起来这些Priority
类几乎(如果不是完全)无关。Log4j%1的Priority
实际上是级别(实际上它有一个子类Level
)。
因此,您必须查看Log4j 2的Logger
类,以查看是否有任何带有Level
参数的方法匹配,但似乎没有相同的替代方法(除了logMessage
可能,但这似乎是相当低的级别)。
logger.debug(message)
也会做得一样好。不过,如果你能提供更多的背景信息,还是会有帮助的。
相关文章