1. 程式人生 > >slf4j+log4j實現web專案日誌輸出

slf4j+log4j實現web專案日誌輸出

                          基於slf4j 和 log4j實現web專案的日誌輸出

一:匯入相關依賴

                <dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.25</version>
		</dependency>


		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>


		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.25</version>
		</dependency>

slf4j-log4j12:用於log4j適配sjf4j

二:專案下建立log4j.properties(檔名稱不可更改,log4j自動根據名稱載入檔案)

編輯log4j.properties

# DEBUG,INFO,WARN,ERROR,FATAL 日誌等級  
LOG_LEVEL=INFO  
  
log4j.rootLogger=${LOG_LEVEL},CONSOLE,FILE  
# 定義像控制檯輸出時候的相關屬性
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
#設定編碼 
log4j.appender.CONSOLE.Encoding=utf-8
#設定輸出日誌的格式
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
log4j.appender.CONSOLE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd} %C{1}@(%F:%L):%m%n  
  
# 定義向檔案輸出日誌時候的相關屬性
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender  
# 輸出到專案下的Spring.log檔案中
log4j.appender.FILE.File=Spring.log  
# 設定編碼
log4j.appender.FILE.Encoding=utf-8
# 設定樣式
log4j.appender.FILE.DatePattern='.'yyyy-MM-dd  
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout  
log4j.appender.FILE.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH\:mm\:ss} %C{8}@(%F\:%L)\:%m%n   

三:測試

package wxApp;

import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


public class TestController {
	
	@Test
	public void testLog(){
		Logger log = LoggerFactory.getLogger(this.getClass());
		log.trace("這是rrace日誌。。。");
		log.debug("這是debuug日誌。。。");
		log.info("這是info日誌。。。");
		log.warn("這是warn日誌。。。");
		log.error("這是error日誌。。。");
		
	}

}

控制檯日誌列印:因為日誌級別是info,所以只有三個輸出

檔案日誌列印:

tigs:如果輸出的時候出現以下日誌

log4j:WARN Error initializing output writer.
log4j:WARN Unsupported encoding?

說明log4j.appender.CONSOLE.Encoding=utf-8 這一句的中間或者結尾出現空格,去除即可