log4j配置與實例運行

1.項目中有使用log4j,但是隻瞭解它與日誌有關,因爲log4j單詞中就有log一詞。當自己要真正地使用它做一些事情的時候,就需要了解它是設計來做什麼用的?

另外一個需要知道的事情就是知道它能夠幹什麼之後,我們怎麼樣才能在項目中去使用它,這纔是我們學習它的目的。

 

2.log4j 百度定義爲:

Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日誌信息輸送的目的地是控制檯、文件、GUI組件,甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等;我們也可以控制每一條日誌的輸出格式;通過定義每一條日誌信息的級別,我們能夠更加細緻地控制日誌的生成過程。最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼。

 

3.自我理解,log4j代替了system.out.println();並且log4j做的更加專業,不僅能夠支持輸出到控制檯,也能支持文件、GUI組件等。日誌顯示樣式和目標地都是可配置的,而且非常簡單。

 

4.例子運行。直接給出項目的截圖吧。

新建java項目log4jdemo1,名字都無所謂。看到裏面有個lib文件夾下的log4j的jar包,這個是需要從官網或者其他地方下載或者拷貝過來。

另外src目錄下需要用配置文件來配置log4j,我項目中有兩個文件,這是我測試log4j兩種配置的方式,實際運行只讀取其中一種配置,我想它讀取就是按照log4j命名來讀取。

log4j支持properties,和xml兩種配置方式,自己任意選擇,具體區別不是很清楚,自我感覺就是配置方式不一樣,個人喜好吧。

這裏只是摘出log4j---.properties和log4j.xml的配置內容,裏面具體意思不一一說明。

log4j--.properties

#可以設置級別:debug>info>error
#debug:顯示debug、info、error
#info:顯示info、error
#error:只error
##log4j.rootLogger=debug,appender1
#log4j.rootLogger=info,appender1
#log4j.rootLogger=error,appender1

#輸出到控制檯
##log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#樣式爲TTCCLayout
##log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout




#設置級別:
log4j.rootLogger=debug,appender1

#輸出到文件(這裏默認爲追加方式)
log4j.appender.appender1=org.apache.log4j.FileAppender
#設置文件輸出路徑
#【1】文本文件
#log4j.appender.appender1.File=c:/Log4JDemo02.log
#【2】HTML文件
log4j.appender.appender1.File=d:/Log4JDemo02.html
#設置文件輸出樣式
#log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout




#設置級別和多個目的地
#log4j.rootLogger=debug,appender1,appender2

#輸出到控制檯
#log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#設置輸出樣式
#log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout

#輸出到文件(這裏默認爲追加方式)
#log4j.appender.appender2=org.apache.log4j.FileAppender
#設置文件輸出路徑
#【1】文本文件
#log4j.appender.appender2.File=c:/Log4JDemo02.log
#【2】HTML文件
#log4j.appender.appender2.File=c:/Log4JDemo02.html
#設置文件輸出樣式
#log4j.appender.appender2.layout=org.apache.log4j.TTCCLayout
#log4j.appender.appender2.layout=org.apache.log4j.HTMLLayout

這裏面我弄了幾個方式來測試,裏面我有註釋掉其他的配置方式。ConsoleAppender控制檯輸出,FileAppender文件輸出。。。名字就能看出來。

log4j.xml方式

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

	<appender name="appender1"
		class="org.apache.log4j.RollingFileAppender">
		<param name="File" value="logfile08.html" />
		<param name="MaxFileSize" value="1MB" />
		<param name="MaxBackupIndex" value="5" />
		<layout class="org.apache.log4j.HTMLLayout">
		</layout>
	</appender>
	<!-- 屏幕輸出  appender定義 -->
	<appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
		<layout class="org.apache.log4j.PatternLayout">
			<param name="ConversionPattern" value="[log4j-test]%d %-5p [%t] %c.%M | %m%n" />
		</layout>
	</appender>
	<root>
		<level value="debug" />
		<appender-ref ref="appender1" />		
		<appender-ref ref="STDOUT" />
	</root>
</log4j:configuration>

這裏需要了解相關的參數的含義,像value="[log4j-test]%d %-5p [%t] %c.%M | %m%n" 是輸出的日誌信息格式(layout,可能翻譯不對,應該是樣式)。

 

java文件內容

package com.coderdream.log4j;
import org.apache.log4j.Logger;

public class HelloLog4j {

	private static Logger logger = Logger.getLogger(HelloLog4j.class);
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// System.out.println("This is println message.");
		
		// 記錄debug級別的信息
		logger.debug("This is debug message.");
		// 記錄info級別的信息
		logger.info("This is info message.");
		// 記錄error級別的信息
		logger.error("This is error message.");
		// 記錄warn級別的信息
		logger.warn("This is warn message.");
	}
}

直接運行。。。

簡單的logj4j使用就到此結束了。log4j其他的日誌處理能力今後在需要的時候再仔細研究研究。

今天就mark到此。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章