在本教程中,我们将向您展示如何将Log4j框架与Struts 2 Web应用程序集成。 您需要做的就是
- 包括
log4j.jar
作为项目依赖项 - 创建一个log4j.properties文件,并将其放入类路径的根目录中(使用Maven),将其放入
resources
文件夹中。
使用的技术和工具:
- Log4j 1.2.17
- Struts2.3.16.3
- Maven 3
- 雄猫6
- Eclipse开普勒4.3
1.项目目录
查看最终项目结构。
2.项目依赖
声明Struts 2和log4j依赖项:
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mkyong.common</groupId>
<artifactId>Struts2</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>Struts + Log4j Webapp</name>
<url>http://maven.apache.org</url>
<properties>
<jdk.version>1.7</jdk.version>
<struts.version>2.3.16.3</struts.version>
<log4j.version>1.2.17</log4j.version>
</properties>
<dependencies>
<!-- Struts 2 -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts.version}</version>
</dependency>
<!-- Log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
</dependencies>
<build>
<finalName>Struts2</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>false</downloadJavadocs>
<wtpversion>2.0</wtpversion>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
3. log4j.properties
创建一个log4j属性文件,并将其放入resources
文件夹中,请参阅步骤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. Struts 2操作和记录
返回页面的简单操作,并向您展示如何使用log4j记录消息。
WelcomeAction.java
package com.mkyong.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. Struts 2配置
如果您有兴趣,可以使用Struts 2配置和JSP页面。
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="welcome" namespace="/" extends="struts-default">
<action name="welcome" class="com.mkyong.common.action.WelcomeAction">
<result name="success">pages/success.jsp</result>
</action>
</package>
</struts>
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>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>
</web-app>
pages/success.jsp
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
</head>
<body>
<h1>Struts 2 + Log4j integration example</h1>
</body>
</html>
6.演示
运行Struts 2 Web应用程序,并访问欢迎操作。
网址:http:// localhost:8888 / Log4jAndStruts2 / welcome
6.1所有日志消息将显示在控制台中。
图片:Eclipse控制台
6.2此外,将在Tomcat的logs文件夹中创建一个日志文件。
图片:D:\ apache-tomcat-6.0.37 \ logs \ mystruts2app.log
下载源代码
下载它– Log4jAndStruts2Example.zip (20 KB)
参考文献
翻译自: https://mkyong.com/struts2/struts-2-log4j-integration-example/