在本教程中,我们将向您展示如何将log4j框架与经典的Struts 1.3.x Web应用程序集成。 没有多余的工作,只需包含log4j.jar
并创建一个log4j.xml
或log4j.properties
文件,并将其放入类路径的根目录(对于Maven,则将其放入资源文件夹)。
使用的技术和工具:
- Log4j 1.2.17
- Struts1.3.10
- Maven 3
- 雄猫6
- Eclipse开普勒4.3
1.项目目录
查看最终项目结构。
2.项目依赖
声明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应用程序,并访问欢迎操作。
网址:http:// localhost:8080 / Log4jAndStruts1 / welcome.do
6.1 Eclipse控制台。
6.2此外,将在Tomcat的logs文件夹中创建一个日志文件。
图片:D:\ apache-tomcat-6.0.37 \ logs \ myStruts1App.log
下载源代码
下载它– Log4jAndStrutsExample.zip (11 KB)
参考文献
翻译自: https://mkyong.com/struts/struts-log4j-integration-example/