
このチュートリアルでは、log4jフレームワークを古典的なStruts 1.3.x Webアプリケーションと統合する方法を説明します。特別な作業はありません。単に
log4j.jar`をインクルードし、
log4j.xml`または `log4j.properties`ファイルを作成し、クラスパスのルートに入れます(Mavenの場合はresourcesフォルダに入れます)。
使用される技術とツール:
-
Log4j 1.2.17
-
Struts 1.3.10
-
Maven 3
-
Tomcat 6
-
Eclipseケプラー4.3
1.プロジェクトディレクトリ
最終的なプロジェクトの構造を見直します。
プロジェクトの依存関係
Strutsとlog4jの依存関係を宣言します:
pom.xml
<properties>
<struts.version>1.3.10</struts.version>
<log4j.version>1.2.17</log4j.version>
</properties>
<dependencies>
<!-- Struts 1.x -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts-core</artifactId>
<version>${struts.version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts-taglib</artifactId>
<version>${struts.version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts-extras</artifactId>
<version>${struts.version}</version>
</dependency>
<!-- Log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<!-- Need this for web -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
</dependencies>
3. log4j.xml
log4j XMLファイルを作成し、それを `resources`フォルダに入れます。ステップ1を参照してください。これは、ログメッセージをコンソールとファイルにリダイレクトするようにlog4jに指示します。
log4j.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true"
xmlns:log4j='http://jakarta.apache.org/log4j/'>
<!-- Console -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"/>
</layout>
</appender>
<!-- file -->
<appender name="file" class="org.apache.log4j.RollingFileAppender">
<param name="append" value="false"/>
<param name="maxFileSize" value="10KB"/>
<param name="maxBackupIndex" value="5"/>
<param name="file" value="${catalina.home}/logs/myStruts1App.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n"/>
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="console"/>
<appender-ref ref="file"/>
</root>
</log4j:configuration>
4.メッセージロギング
ページを返す簡単なアクションと、log4jでのロギングの方法を示します。
WelcomeAction.java
package com.mkyong.common.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class WelcomeAction extends Action{
//Get a logger
private static final Logger logger = Logger.getLogger(WelcomeAction.class);
public ActionForward execute(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response)
throws Exception {
//logs debug
if(logger.isDebugEnabled()){
logger.debug("WelcomeAction.execute()");
}
//logs exception
logger.error("This is Error message", new Exception("Testing"));
return mapping.findForward("success");
}
}
5. Struts 1の設定
単純なStruts 1の設定など
web.xml
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app__2__5.xsd"
version="2.5">
<display-name>Log4j + Struts Web Application</display-name>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>
org.apache.struts.action.ActionServlet
</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>
/WEB-INF/struts-config.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>** .do</url-pattern>
</servlet-mapping>
</web-app>
struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://jakarta.apache.org/struts/dtds/struts-config__1__3.dtd">
<struts-config>
<action-mappings>
<action
path="/welcome"
type="com.mkyong.common.action.WelcomeAction"
>
<forward name="success" path="/pages/welcome.jsp"/>
</action>
</action-mappings>
</struts-config>
pages/welcome.jsp
<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<html>
<head>
</head>
<body>
<h1>
Struts 1.x + Log4j framework
</h1>
</body>
</html>
6.デモ
Struts 1 Webアプリケーションを実行し、ウェルカム・アクションにアクセスします。
URL:http://localhost:8080/Log4jAndStruts1/welcome.do
6.1 Eclipseコンソール。
6.2さらに、ログファイルがTomcatのlogsフォルダに作成されます。
Figure:D:\ apache-tomcat-6.0.37 \ logs \ myStruts1App.log
ソースコードをダウンロードする
ダウンロードする –
Log4jAndStrutsExample.zip
(11 KB)