- log4j 教程
- log4j - 首頁
- log4j - 概述
- log4j - 安裝
- log4j - 架構
- log4j - 配置
- log4j - 示例程式
- log4j - 日誌方法
- log4j - 日誌級別
- log4j - 日誌格式
- log4j - 檔案日誌
- log4j - 資料庫日誌
- log4j 有用資源
- log4j - 常見問題解答
- log4j - 快速指南
- log4j - 有用資源
- log4j - 討論
log4j - 日誌級別
org.apache.log4j.Level 的級別。您也可以透過子類化Level類來定義自定義級別。
| 級別 | 描述 |
|---|---|
| ALL | 所有級別,包括自定義級別。 |
| DEBUG | 指定細粒度的資訊事件,這些事件對於除錯應用程式最有用。 |
| INFO | 指定以粗粒度級別突出顯示應用程式進度的資訊訊息。 |
| WARN | 指定可能存在危害的情況。 |
| ERROR | 指定可能仍然允許應用程式繼續執行的錯誤事件。 |
| FATAL | 指定非常嚴重的錯誤事件,這些事件可能會導致應用程式中止。 |
| OFF | 最高級別,用於關閉日誌記錄。 |
| TRACE | 指定比 DEBUG 更細粒度的資訊事件。 |
級別是如何工作的?
如果 p >= q,則具有級別 q 的 logger 中級別為 p 的日誌請求是啟用的。此規則是 log4j 的核心。它假設級別是有序的。對於標準級別,我們有 ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF。
以下示例顯示瞭如何過濾所有 DEBUG 和 INFO 訊息。此程式使用 logger 方法 setLevel(Level.X) 來設定所需的日誌級別。
此示例將列印除 Debug 和 Info 之外的所有訊息。
import org.apache.log4j.*;
public class LogClass {
private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class);
public static void main(String[] args) {
log.setLevel(Level.WARN);
log.trace("Trace Message!");
log.debug("Debug Message!");
log.info("Info Message!");
log.warn("Warn Message!");
log.error("Error Message!");
log.fatal("Fatal Message!");
}
}
編譯並執行LogClass程式時,將生成以下結果:
Warn Message! Error Message! Fatal Message!
使用配置檔案設定級別
log4j 提供基於配置檔案的級別設定,當您想要更改除錯級別時,無需更改原始碼。
以下是一個示例配置檔案,它將執行與我們在上述示例中使用log.setLevel(Level.WARN)方法相同的任務。
# Define the root logger with appender file
log = /usr/home/log4j
log4j.rootLogger = WARN, FILE
# Define the file appender
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out
# Define the layout for file appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%m%n
現在讓我們使用以下程式:
import org.apache.log4j.*;
public class LogClass {
private static org.apache.log4j.Logger log = Logger.getLogger(LogClass.class);
public static void main(String[] args) {
log.trace("Trace Message!");
log.debug("Debug Message!");
log.info("Info Message!");
log.warn("Warn Message!");
log.error("Error Message!");
log.fatal("Fatal Message!");
}
}
現在編譯並執行上述程式,您將在/usr/home/log4j/log.out檔案中獲得以下結果:
Warn Message! Error Message! Fatal Message!
廣告