1.log4j包含三個組件,分別是:LOGS(記錄器)、Appenders(輸出源)、layouts(輸出源)!可以簡單的認爲是日誌類別、日誌輸出到什麼地方、日誌以何種形式輸出。
1、 Loggers
Loggers組件在此係統中被分爲五個級別:(最小)DEBUG、INFO、WARN、ERROR和FATAL(最大)。這五個級別是有順序的,DEBUG Log4j有一個規則:假設Loggers級別爲P,如果在Loggers中發生了一個級別Q比P高,則可以啓動,否則屏蔽掉。 假設你定義的級別是info,那麼error和warn的日誌可以顯示而比他低的debug信息就不顯示了。
其語法表示爲:
org.apache.log4j.ConsoleAppender(控制檯)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天產生一個日誌文件)
org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產生一個新的文件)
org.apache.log4j.WriterAppender(將日誌信息以流格式發送到任意指定的地方)
package org.apache.log4j;
publicclass Logger {
// Creation and retrieval methods:
publicstatic Logger getRootLogger();
publicstatic Logger getLogger(String name);
// printing methods:
publicvoid debug(Object message);
publicvoid info(Object message);
publicvoid warn(Object message);
publicvoid error(Object message);
publicvoid fatal(Object message);
// generic printing method:
publicvoid log(Level l, Object message);
}
|
Logger x = Logger.getLogger("wombat");
Logger y = Logger.getLogger("wombat");
|
PropertyConfigurator.configure("log4j.properties");
|
privatestatic Logger log = Logger.getLogger("MyCLASS.class");
|
log.debug("it is the debug info");
|
import org.apache.log4j.Logger;
publicclass Test {
static Logger
log= Logger.getLogger(Test.class);
publicvoid log(){
log.debug("Debug info.");
log.info("Info info");
log.warn("Warn info");
log.error("Error info");
log.fatal("Fatal info");
}
publicstaticvoid main(String[] args) {
Test test = new Test();
test.log();
}
}
|
log4j.rootLogger=info, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
|
log4j.rootLogger=info, stdout
|
log.debug("Debug info.");
|
log4j.appender.A=org.apache.log4j.ConsoleAppender
|