軟體工程筆記

Java 程式設計(職場)-Java的記錄檔記錄工具Log4j-Logger

簡介 : Log4j 是一套開放源碼的工具,方便編程人員在程式中加入 log 機制,並輸出到各種目標上。Log […]

簡介 :

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

}`