このチュートリアルでは、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)