簡介 :

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);//
	}

}

Steven玄

謝謝您觀看本站內容!! 😅 西元93年台灣男,軟體前、後、資料庫工程師 和 多元收入實踐,程式設計、網站系統規劃、商業策略分析規劃、多元收入研究,目前在網站開發公司擔任工程師。

發佈留言