读书人

struts2 log4j 错误日志不打印

发布时间: 2012-09-06 10:37:01 作者: rapoo

struts2 log4j 异常日志不打印

? struts2开发过程中控制台不输出错误日志,log4j也没办法记录,struts2处理异常的类在 com.opensymphony.xwork2.interceptor 中, ,加上日志和控制台打印即可如下

package com.opensymphony.xwork2.interceptor;import java.io.IOException;import java.io.PrintWriter;import java.io.StringWriter;import org.apache.log4j.Logger;/** * <!-- START SNIPPET: javadoc --> * * A simple wrapper around an exception, providing an easy way to print out the stack trace of the exception as well as * a way to get a handle on the exception itself. * * <!-- END SNIPPET: javadoc --> * * @author Matthew E. Porter (matthew dot porter at metissian dot com) */public class ExceptionHolder {private static final Logger LOG = Logger.getLogger(ExceptionHolder.class);    private Exception exception;    /**     * Holds the given exception     *     * @param exception  the exception to hold.     */    public ExceptionHolder(Exception exception) {        this.exception = exception;    }    /**     * Gets the holded exception     *     * @return  the holded exception     */    public Exception getException() {        return this.exception;    }    /**     * Gets the holded exception stacktrace using {@link Exception#printStackTrace()}.     *     * @return  stacktrace     */    public String getExceptionStack() {        String exceptionStack = null;        if (getException() != null) {            StringWriter sw = new StringWriter();            PrintWriter pw = new PrintWriter(sw);            try {                getException().printStackTrace(pw);                exceptionStack = sw.toString();                LOG.error(exceptionStack);            }            finally {                try {                    sw.close();                    pw.close();                } catch (IOException e) {                    // ignore                }            }        }        return exceptionStack;    }    }

?

?

读书人网 >软件架构设计

热点推荐