相关技术和工具的使用:
这里我们创建一个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