簡體   English   中英

Log4j logger.throwing無法設置日志級別

[英]Log4j logger.throwing cannot set log level

我對如何在Apache Log4J中使用logger.throwing使用特定日志級別記錄異常感到困惑。

logger是org.apache.logging.log4j.Logger的實例

這很好用:

return logger.throwing(new Exception("Message")); 

這是行不通的。 為什么?

return logger.throwing(Level.DEBUG, new Exception("Message")); 

這是編譯器顯示的錯誤:

[javac]     return logger.throwing(Level.DEBUG, new Exception("Message"));
[javac]                                  ^
[javac]     method Logger.<T#1>throwing(org.apache.logging.log4j.Level,T#1) is not applicable
[javac]       (cannot infer type-variable(s) T#1
[javac]         (argument mismatch; org.apache.log4j.Level cannot be converted to org.apache.logging.log4j.Level))
[javac]     method Logger.<T#2>throwing(T#2) is not applicable
[javac]       (cannot infer type-variable(s) T#2
[javac]         (actual and formal argument lists differ in length))
[javac]   where T#1,T#2 are type-variables:
[javac]     T#1 extends Throwable declared in method <T#1>throwing(org.apache.logging.log4j.Level,T#1)
[javac]     T#2 extends Throwable declared in method <T#2>throwing(T#2)

Log4j中有兩種Level的實現。 一個是較舊的,因此無法使用,因為它來自較舊的log4j主版本。

從2012年開始的org.apache.log4j.Level的較舊版本,適用於Log4j 1.2

對於Log4j 2.X,較新的實現是2017年以來的org.apache.logging.log4j.Level

如果可能,請刪除所有對舊Level引用,並使用較新的實現,或硬聲明完整的程序包名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM