2017-02-12 59 views
0

我希望Logger可以實現我的自定義日誌記錄級別方法。例如,我想致電log.custom("custom level log")。根據documentation這是可能的,但沒有足夠的提示給我。有人能幫助我理解這個命令究竟做了什麼嗎?Log4j-2自定義日誌級別代碼生成器

java -cp log4j-core-2.8.jar \ 
    org.apache.logging.log4j.core.tools.Generate$ExtendedLogger \ 
    com.mycomp.ExtLogger DIAG=350 NOTICE=450 VERBOSE=550 > com/mycomp/ExtLogger.java 

此命令成功退出後應執行哪些步驟?我應該換什麼,在哪裏?

回答

1

該工具的功能是生成可以包含在項目中的源代碼。目的是使用生成的類而不是標準的Log4j2 Logger。

在運行該工具之前,您需要決定相對於現有級別決定要調用的自定義級別以及它們的排名。手冊頁顯示一個包含內置級別的int值的表格。您的自定義級別的int值可能會介於這些值之間。

在引用的示例中,該工具將在com.mycomp包中生成一個名爲ExtLogger的類,該包用三個自定義級別(DIAG,NOTICE和VERBOSE)擴展標準Log4j2記錄器。 DIAG的int值是350,所以它位於WARN(300)和INFO(400)之間。

該工具將生成的源代碼寫入控制檯。該示例顯示瞭如何將該輸出重定向到文件。然後你可以在你的項目中包含這個文件。

+0

謝謝你的詳細解答。你能檢查這個錯誤嗎? https://gist.github.com/sdwsk/47b86d243023b1583d340889a89639f6 – Sebastian

+0

我注意到一些奇怪的東西:錯誤消息說'Generate'類沒有main方法,但是你要執行的是'Generate $ ExtendedLogger'內部類。內部類_does_有一個主要方法。也許命令行將'$ Extended'解釋爲一個環境變量。你可以嘗試引用完全合格的類名嗎? –

+0

我創建了https://issues.apache.org/jira/browse/LOG4J2-1814來解決這個問題。 –