Struts2+Log4j集成
在本教程中,我們學習如何將log4j框架在Struts2的Web應用程序集成。所有需要做的有:
包含 log4j.jar 作爲項目依賴
創建一個 log4j.properties 文件,並把它放入 classpath 的根目錄-放到資源文件夾中。
相關技術和工具的使用:
- Log4j 1.2.17
- Struts 2.1.8
- Tomcat 6
- MyEclipse 10
1. 工程結構
這裏我們創建一個web工程爲:struts2log4j,參見下面最終的工程結構:
2. log4j.properties
創建log4j的屬性文件,並把它放入資源文件夾,請參閱步驟#1。
log4j.properties
# Root logger option
log4j.rootLogger=ERROR, stdout, file
Redirect log messages to console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Redirect log messages to a log file, support rolling backup file.
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=${catalina.home}/logs/mystruts2app.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
4. Struts2 Action 和 Logging
一個簡單的動作返回一個頁面,並顯示瞭如何來執行 log4j 消息日誌記錄。
WelcomeAction.java
package com.yiibai.common.action;
import org.apache.log4j.Logger;
import com.opensymphony.xwork2.ActionSupport;
public class WelcomeAction extends ActionSupport {
private static final long serialVersionUID = 1L;
//get log4j
private static final Logger logger = Logger.getLogger(WelcomeAction.class);
public String execute() throws Exception {
// logs debug message
if (logger.isDebugEnabled()) {
logger.debug("execute()!");
}
// logs exception
logger.error("This is Error message", new Exception("Testing"));
return SUCCESS;
}
}
5. Struts2配置
Struts2 的配置和JSP頁面,如果想了解的話。
struts.xml
<package name="welcome" namespace="/" extends="struts-default">
<action name="welcome" class="com.yiibai.common.action.WelcomeAction">
<result name="success">pages/success.jsp</result>
</action>
</package>
web.xml
<display-name>Struts 2 Web Application</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/\*</url-pattern>
</filter-mapping>
pages/success.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
Struts 2 + Log4j integration example
6. 實例測試
運行Struts 2的Web應用程序,並訪問welcome的動作。
在瀏覽器中打開 URL : http://localhost:8888/struts2log4j/welcome
6.1 所有日誌消息將顯示在控制檯中。
Figure : Eclipse 終端
6.2 此外,日誌文件將在Tomcat 的日誌文件夾中被創建。
圖片: C:\mystruts2app.log