相关技术和工具的使用:
这里我们创建一个web工程为:struts2log4j,参见下面最终的工程结构:

# 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
package com.h3.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;
}
}
<?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.h3.common.action.welcomeaction"> <result name="success">pages/success.jsp</result> </action> </package> </struts>
<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>
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> </head> <body> <h1>struts 2 + log4j integration example</h1> </body> </html>
在浏览器中打开 url : http://localhost:8888/struts2log4j/welcome
6.1 所有日志消息将显示在控制台中。
figure : eclipse 终端
6.2 此外,日志文件将在tomcat 的日志文件夹中被创建。
图片: c:\mystruts2app.log