簡介 :
Log4j 是一套開放源碼的工具,方便編程人員在程式中加入 log 機制,並輸出到各種目標上。
Log4j 能夠透過外部的設定檔(properites 或 XML)進行設定。
Log4j 能夠將 log message 寫到 console, 檔案,串流,TCP 協定的伺服器, Unix Syslog daemon 等。
Log4j 具有 5 種 log 層級(DEBUG, INFO, WARN, ERROR, FATAL),可用於不同的系統狀態下所產生的訊息。
組成 Log4j 的三大元件 :
Logger – 由編程人員在程式中使用,進行 logging 的元件
Appender – 負責將 log message 輸出到各種裝置上
Layout – 決定 log message 的格式
Logger :
Logger 可以被指派等級。能夠指派給 Logger 的等級有 : DEBUG, INFO, WARN, ERROR, FATAL 5 種,定義在 org.apache.log4j.Level 類別中。這 5 種等級的高低順序為 FATAL > ERROR > WARN > INFO > DEBUG。
設定安裝
需要安裝log4j工具lib/log4j-*-*.**.jar
然後編輯設定檔resoures/log4j.properties
設定檔 log4j.properties 簡單設定
這 5 種等級的高低順序為 FATAL > ERROR > WARN > INFO > DEBUG。
#FATAL > ERROR > WARN > INFO > DEBUG
log4j.rootLogger=debug, console, logfile
#console is set to be a ConsoleAppender
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d %-5p %l - %m%n
log4j.appender.console.encoding=UTF-8
#logfile is set to be a file
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d{MM-dd HH:mm:ss} %-5p %l - %m%n
log4j.appender.logfile.File=D:/log/log.txt
log4j.appender.logfile.MaxFileSize=3MB
log4j.appender.logfile.MaxBackupIndex=5
log4j.appender.logfile.encoding=UTF-8
log4j.logger.org.apache.commons=INFO
log4j.logger.org.apache.jasper=INFO
log4j.logger.org.apache.catalina=INFO
Log4j使用實例
package test2;
//log4j之使用
//Logger 跟 system.out 相似,但是logger可以把它再設定那邊設定成自己想要的路徑上去存起來
//import java.util.logging.Logger; //這是原本內建的logger,但是相較於log4j比較陽春一點
import org.apache.log4j.Logger;
public class TestA {
private static Logger logger = Logger.getLogger("test1.class");
public static void main(String[] args) {
// logger 有順序性,有層級的方式error最嚴重,info其次,debug則可有可無,開發人在用,
// log4j的設定檔的第一行可以調整成ERROR(指顯示error的) WARN(顯示error和warn) INFO(顯示error和warn和info) DEBUG(都顯示)
//這 5 種等級的高低順序為 FATAL > ERROR > WARN > INFO > DEBUG
logger.fatal("FATAL");// 層級1 FATAL的動作
logger.error("error");// 層級2 error的動作
logger.warn("warn");// 層級3 warn的動作
logger.info("info");// 層級4 info 類似做show的動作
logger.debug("debug");// 層級5 做debug的動作
//丟入變數測試
String aa="good";
logger.info("info:"+aa);//
}
}