关于配置struts2全局异常后控制台无法打印异常信息问题
<global-results>
<result name="error">/exception/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exceptions" result="error" />
<exception-mapping result="error" exception="java.lang.Throwable"></exception-mapping>
</global-exception-mappings>
配置完后,action中不try catch则无法在控制台打印异常信息。
多次尝试后解决方案如下:
在struts2中的defaultStack拦截器中配置参数如下
<interceptor-ref name="defaultStack">
<param name="exception.logEnabled">true</param>
<param name="exception.logLevel">error</param>
</interceptor-ref>
再配合log4j中设置
log4j.logger.com.opensymphony.xwork2=WARN
或
log4j.logger.com.opensymphony.xwork2=ERROR
即可看到控制台打印异常信息,当然log4j中需要配置控制台输出。
xwork中的ExceptionMappingInterceptor拦截器默认将异常打印关闭了。即默认只跳转到异常处理页。在开发时我们需要将其打开,即我们刚才struts中配置的参数.
该拦截器有三个参数。
logEnabled配置是否打开日志输出
logLevel 配置拦截到异常的日志级别
logCategory 应该是自定义日志
原址:
http://blog.163.com/tonylee@126/blog/static/1303355542012417808407/