1. 程式人生 > >SSH框架配置log4j

SSH框架配置log4j

1. log4j(log4j.properties)配置檔案

定義日誌配置檔案,放到WEB-INFO目錄下。

log4j.logger.OperateLog=INFO,A1
###輸出到日誌檔案###
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
log4j.appender.A1.File=E:\\file.log
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss} [%t\:%r]-[%p] %m%n
其中,OperateLog是自定義日誌的名稱,呼叫的時候要用到,該配置檔案中可以定義多個不同的日誌輸出配置,當呼叫的時候用哪個就呼叫哪個。

INFO是日誌輸出級別,主要有:ERROR、WARN、INFO、DEBUG

ERROR 為嚴重錯誤 主要是程式的錯誤
WARN 為一般警告,比如session丟失
INFO 為一般要顯示的資訊,比如登入登出
DEBUG 為程式的除錯資訊

A1是輸出的目的地,可以是多個,直接跟在後面,用逗號隔開。表示將日誌級別為INFO的資訊輸出到A1這個目的地。接下來的四句程式碼就是定義A1的。

關於appender輸出目的地,輸出格式等的詳細定義,自己可以google之,這裡不詳細介紹。

log4j的三個重要部分:日誌資訊的優先順序,日誌資訊的輸出目的地,日誌資訊的輸出格式。

2. web.xml配置

<context-param>
   		<param-name>log4jConfigLocation</param-name> 
   		<param-value>WEB-INF/log4j.properties</param-value> 
	</context-param>
	<context-param> 
   		<param-name>log4jRefreshInterval</param-name> 
   		<param-value>60000</param-value> 
	</context-param> 
	<!-- 需要新增spring-web.jar包,否則用發生錯誤資訊 -->
	<listener> 
   		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
	</listener> 

第一個引數定義的是log4j配置檔案的位置,第二個引數定義的是重新整理週期,修改log4j配置檔案後不用重新部署。後面的是監聽器,必須將spring-web.jar包包含到專案工程裡。

3. 呼叫

在需要日誌輸出的類中,定義日誌物件

private final Logger logger = Logger.getLogger("OperateLog");

其中OperateLog是自定義的日誌名稱,可以根據需求,進行定義、使用。

在需要輸出日誌的地方使用

 logger.info(session.getAttribute("user") + "登入系統");