日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Struts2 控制台不打印异常的解决方案

發(fā)布時間:2024/9/27 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Struts2 控制台不打印异常的解决方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Struts2 控制臺不打印異常解決方法
<interceptor-ref name="defaultStack"><param name="exception.logEnabled">true</param><param name="exception.logLevel">error</param> </interceptor-ref>

?log4j.properties中加下如下配置:

log4j.logger.com.opensymphony.xwork2=WARN log4j.logger.com.opensymphony.xwork2=ERROR ? ? ?

struts2配合log4j打印異常棧信息

?

關于配置struts2全局異常后控制臺無法打印異常信息問題

?

Java代碼
  • <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>??
  • [java]view plaincopy
  • <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攔截器中配置參數如下

    ?

    Java代碼
  • <interceptor-ref?name="defaultStack"> ??
  • ????<param?name="exception.logEnabled">true</param> ??
  • ????<param?name="exception.logLevel">error</param> ??
  • </interceptor-ref>??
  • [java]view plaincopy
  • <interceptor-ref?name="defaultStack">??
  • ????<param?name="exception.logEnabled">true</param>??
  • ????<param?name="exception.logLevel">error</param>??
  • </interceptor-ref>??
  • ?

    ?再配合log4j中設置

    Java代碼
  • log4j.logger.com.opensymphony.xwork2=WARN???
  • [java]view plaincopy
  • log4j.logger.com.opensymphony.xwork2=WARN???
  • ?或

    Java代碼
  • log4j.logger.com.opensymphony.xwork2=ERROR??
  • [java]view plaincopy
  • log4j.logger.com.opensymphony.xwork2=ERROR??
  • ?

    即可看到控制臺打印異常信息,當然log4j中需要配置控制臺輸出。

    ?

    原理:http://www.opensymphony.com/webwork/api/com/opensymphony/xwork/interceptor/ExceptionMappingInterceptor.html

    ?

    xwork中的ExceptionMappingInterceptor攔截器默認將異常打印關閉了。即默認只跳轉到異常處理頁。在開發(fā)時我們需要將其打開,即我們剛才struts中配置的參數.

    該攔截器有三個參數。

    Java代碼
  • logEnabled?(optional)?-?Should?exceptions?also?be?logged??(boolean?true|false) ??
  • logLevel?(optional)?-?what?log?level?should?we?use?(trace,?debug,?info,?warn,?error,?fatal)??-?defaut?is?debug ??
  • logCategory?(optional)?-?If?provided?we?would?use?this?category?(eg.?com.mycompany.app).?Default?is?to?use?com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.??
  • [java]view plaincopy
  • logEnabled?(optional)?-?Should?exceptions?also?be?logged??(boolean?true|false)??
  • logLevel?(optional)?-?what?log?level?should?we?use?(trace,?debug,?info,?warn,?error,?fatal)??-?defaut?is?debug??
  • logCategory?(optional)?-?If?provided?we?would?use?this?category?(eg.?com.mycompany.app).?Default?is?to?use?com.opensymphony.xwork.interceptor.ExceptionMappingInterceptor.??
  • ?

    logEnabled配置是否打開日志輸出

    logLevel 配置攔截到異常的日志級別。

    logCategory 應該是自定義日志。沒怎么用,有需求的可以自己研究研究。有知道用途的給俺回復下啊。呵呵

    ----------------------------------------------------------------------------------

    Java代碼
  • <interceptors> ??
  • ????????????<interceptor?name="authority"??
  • ????????????????class="com.test.SystemInterceptor"?/> ??
  • ????????????<interceptor-stack?name="myAuth"> ??
  • ????????????????<interceptor-ref?name="defaultStack"> ??
  • ????????????????????<param?name="exception.logEnabled">true</param> ??
  • ????????????????????<param?name="exception.logLevel">error</param> ??
  • ????????????????</interceptor-ref> ??
  • ????????????????<interceptor-ref?name="authority"?/> ??
  • ????????????</interceptor-stack> ??
  • ????????</interceptors> ??
  • ????????<default-interceptor-ref?name="myAuth"?/>?
  • 總結

    以上是生活随笔為你收集整理的Struts2 控制台不打印异常的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。