本文介紹了如何將優先級升級到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
可能,但這似乎是相當低的級別)。
但是,您應該檢查是否確實需要參數實參。它看起來是為了找到記錄器方法的調用者,可能主要是為了通過擴展Log4j 1的記錄庫來使用。除非您確實在升級這樣的庫,否則我會假設該方法被誤用了,而常規的Log4j 2logger.debug(message)
也會做得一樣好。不過,如果你能提供更多的背景信息,還是會有幫助的。
這篇關于如何將優先級升級到log4j-2?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,