您的位置:首页 > 编程语言 > Java开发

struts2 全局异常开启日志功能

2013-06-25 13:57 190 查看
通常我们在struts.xml的配置中总是会配置全局的异常,然后跳转到某个页面,但是很多情况的时候的异常信息并没有记录到log4j的日志信息中

,这是为什么呢,是因为全局异常对应的拦截器默认日志功能是没有开启的,所以要进行配置才能开启。如下:

<package name="struts-rootException"  extends="struts-default">
<interceptors>
<interceptor-stack name="myGlobalExceptionStack">
<interceptor-ref name="defaultStack">
<param name="exception.logEnabled">true</param>
<param name="exception.logLevel">ERROR</param>
</interceptor-ref>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myGlobalExceptionStack"></default-interceptor-ref>
<global-results>
<result name="root-exception">/WEB-INF/pages/404.jsp
</result>
</global-results>

<global-exception-mappings>
<exception-mapping result="root-exception"
exception="java.lang.Exception"></exception-mapping>
</global-exception-mappings>
</package>


这里就是设置默认拦截器栈中的开启日志属性,并且设置日志级别是error。

<interceptor-stack name="myGlobalExceptionStack">
<interceptor-ref name="defaultStack">
<param name="exception.logEnabled">true</param>
<param name="exception.logLevel">ERROR</param>
</interceptor-ref>
</interceptor-stack>


设置后再将原来的默认拦截器栈起一个名字“myGlobalExceptionStack”,然后再将“myGlobalExceptionStack”设置为默认的拦截器栈:

<default-interceptor-ref name="myGlobalExceptionStack"></default-interceptor-ref>


此时所有继承这个包“struts-rootException”的其他struts-xxxx.xml文件中的默认拦截器栈就是新的了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: