開発者ドキュメント

Struts Log4j統合の例


ストラット1とログ4j、幅= 286、高さ= 67

このチュートリアルでは、log4jフレームワークを古典的なStruts 1.3.x Webアプリケーションと統合する方法を説明します。特別な作業はありません。単に

log4j.jar`をインクルードし、

log4j.xml`または `log4j.properties`ファイルを作成し、クラスパスのルートに入れます(Mavenの場合はresourcesフォルダに入れます)。

使用される技術とツール:

  1. Log4j 1.2.17

  2. Struts 1.3.10

  3. Maven 3

  4. Tomcat 6

  5. 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)

モバイルバージョンを終了