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; } }
?
?