在 Java 中如何使用 Log4j 創建自己的日誌記錄級別(配置 Log4j 2)

已發表: 2017-07-26
在 Java 中如何使用 Log4j 2 創建自己的日誌記錄級別

如果您需要在 Log4j 中添加自己的日誌記錄級別,則可以按如下方式進行。 您將必須創建自己的類,該類將從Level擴展,使用 Apache Log4j 2 Custom Log Levels

Log4j是一個簡單靈活的logging framework 。 日誌記錄為開發人員提供了應用程序故障的詳細上下文。 使用 log4j 可以在運行時啟用日誌記錄,而無需修改應用程序二進製文件。

log4j 包的設計使這些語句可以保留在交付的代碼中,而不會產生沉重的性能成本。

如何在 Log4j 中創建自己的日誌記錄級別(配置 Log4j)

Log4j 允許記錄請求打印到多個目的地。 在 log4j 中,輸出目的地稱為appender 。 它們從控制台、文件、GUI 組件、遠程套接字服務器到 JMS 各不相同。

您需要的 Jar 文件。

這是一個 Maven 依賴項:

將 Log4j 更新到最新版本

CVE-2021-44228:Apache Log4j2 <=2.14.1 配置、日誌消息和參數中使用的 JNDI 功能不能防止攻擊者控制的 LDAP 和其他 JNDI 相關端點。

從 log4j 2.16.0 開始,默認情況下已禁用此行為。

您必須將log4j.xml文件放在/resources文件夾下:

資源文件夾中的 log4j.xml 文件

這是一個示例 Java 代碼:

  • 用於 Java 中自定義日誌級別的 Log4j 日誌記錄
  • 在 log4j 中創建自己的日誌記錄級別
  • log4j 自定義記錄器示例

CrunchifyLog4jLevel.java

另一個必須閱讀:

  • 如何通過命令行啟動停止 Apache Tomcat 服務器? (設置為 Windows 服務)
  • 在 Eclipse 中創建和部署簡單的 Web 服務和 Web 服務客戶端

這是 log4j.xml 文件的內容

CrunchifyLog4jLevelTest.java

運行測試程序,您應該會在Eclipse's Console中看到以下類型的結果。

您為日誌級別指定的 int 值很重要。 這裡我定義“ CRUNCHIFY ”日誌級別要高於DEBUG級別但低於 log4j 提供的TRACE級別。

因此,只要您在類別上(在log4j.xml文件中)將優先級設置為 DEBUG, CRUNCHIFY級別的日誌就不會進入日誌文件。