org.apache.log4j.Level類提供以下級別,但也可以通過Level類的子類自定義級別。
| Level | 描述 |
|---|---|
| ALL | 各級包括自定義級別 |
| DEBUG | 指定細粒度資訊事件是最有用的應用程式調試 |
| ERROR | 錯誤事件可能仍然允許應用程式繼續運行 |
| FATAL | 指定非常嚴重的錯誤事件,這可能導致應用程式中止 |
| INFO | 指定能夠突出在粗粒度級別的應用程式運行情況的資訊的消息 |
| OFF | 這是最高等級,為了關閉日誌記錄 |
| TRACE | 指定細粒度比DEBUG更低的資訊事件 |
| WARN | 指定具有潛在危害的情況 |
日誌級別是如何工作?
級別p的級別使用q,在記錄日誌請求時,如果p>=q啟用。這條規則是log4j的核心。它假設級別是有序的。對於標準級別它們關係如下:ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF。
下麵的例子明確指出如何可以過濾所有的DEBUG和INFO消息。這個程式使用記錄並執行setLevel(Level.X)方法來設置所需的日誌記錄級別:
這個例子將列印,除了調試和資訊的所有消息:
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!
上一篇:
log4j Logger方法
下一篇:
log4j日誌格式化
