`
yosong
  • 浏览: 17552 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

struts2配合log4j打印异常栈信息

    博客分类:
  • SSH
阅读更多

struts2配合log4j打印异常栈信息

转自:http://tdcq.iteye.com/blog/706459

 

关于配置struts2全局异常后控制台无法打印异常信息问题

 

Java代码  收藏代码
  1. <global-results>  
  2.       <result name="error" >/exception/error.jsp</result>  
  3.   </global-results>  
  4.     
  5.   <global-exception-mappings>  
  6.      <exception-mapping exception="java.lang.Exceptions"  result= "error"  />  
  7.      <exception-mapping result="error"  exception= "java.lang.Throwable" ></exception-mapping>   
  8.   </global-exception-mappings>  

 

配置完后,action中不try catch则无法在控制台打印异常信息。

 

 

多次尝试后解决方案如下:

在struts2中的defaultStack拦截器中配置参数如下

 

Java代码  收藏代码
  1. <interceptor-ref name= "defaultStack" >  
  2.     <param name="exception.logEnabled" > true </param>  
  3.     <param name="exception.logLevel" >error</param>  
  4. </interceptor-ref>  

 

 再配合log4j中设置

Java代码  收藏代码
  1. log4j.logger.com.opensymphony.xwork2=WARN   

 或

Java代码  收藏代码
  1. log4j.logger.com.opensymphony.xwork2=ERROR  

 

即可看到控制台打印异常信息,当然log4j中需要配置控制台输出。

 

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

 

xwork中的ExceptionMappingInterceptor拦截器默认将异常打印关闭了。即默认只跳转到异常处理页。在开发时我们需要将其打开,即我们刚才struts中配置的参数.

该拦截器有三个参数。

Java代码  收藏代码
  1. logEnabled (optional) - Should exceptions also be logged? ( boolean   true | false )  
  2. logLevel (optional) - what log level should we use (trace, debug, info, warn, error, fatal)? - defaut is debug  
  3. 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代码  收藏代码
  1. <interceptors>  
  2.             <interceptor name="authority"   
  3.                 class = "com.test.SystemInterceptor"  />  
  4.             <interceptor-stack name="myAuth" >  
  5.                 <interceptor-ref name="defaultStack" >  
  6.                     <param name="exception.logEnabled" > true </param>  
  7.                     <param name="exception.logLevel" >error</param>  
  8.                 </interceptor-ref>  
  9.                 <interceptor-ref name="authority"  />  
  10.             </interceptor-stack>  
  11.         </interceptors>  
  12.         <default -interceptor-ref name= "myAuth"  /> 
分享到:
评论

相关推荐

    Struts2+log4j

    压缩包中的"struts2_log4j"可能包含了以下内容:Struts2的配置文件(struts.xml)、Action类(用于处理请求)、Log4j的配置文件(log4j.properties或log4j.xml)、以及其他必要的资源文件(如JSP页面、样式表、...

    tomcat下struts2的log4j日志配置.doc

    在Tomcat服务器上配置Struts2框架的日志系统时,通常会利用Log4j来实现灵活、可定制的日志记录。Log4j的优势在于其高度的可配置性,允许开发者根据需要调整日志级别、输出格式以及日志目的地。 首先,要使用Log4j,...

    老生常谈Log4j和Log4j2的区别(推荐)

    下面我们将从配置文件类型、核心JAR包、文件渲染和Log调用四个方面来比较Log4j和Log4j2的区别。 配置文件类型 Log4j通过一个.properties文件作为主配置文件,而Log4j2则弃用了这种方式,采用的是.xml、.json或者....

    Struts2版本2.3.*升级2.5.10.1用到的log4j的包(含log4j-1.2-api-2.7)

    struts2.5.10.1 使用的是log4j2 所以需要导入log4j-api-2.7log4j-core-2.7 这两个jar包 并且为了从log4j 平稳的过度到log4j2导入log4j-1.2-api-2.7 jar(避免修改代码)

    纯struts2开发带log4j的用户登录demo

    在本示例中,"纯struts2开发带log4j的用户登录demo"是教你如何利用Struts2框架来实现一个简单的用户登录功能,并结合log4j进行日志记录。Log4j是一个广泛使用的日志记录工具,它提供了灵活的日志配置,有助于调试、...

    struts2,(slf4j-log4j12-1.5.8—日志) 建议360压缩解压

    在"slf4j-log4j12-1.5.8"这个包中,包含了SLF4J的API接口和Log4j的具体实现,使得开发者能够方便地将日志记录集成到Struts2应用中。 Struts2的基础jar包通常包含以下组件: 1. `struts2-core`: 这是Struts2的核心...

    struts2.3.20和log4j1.2.9完整开发jar包

    Struts2是基于MVC(Model-View-Controller)设计模式的开源Web应用程序框架,它极大地简化了Java Servlets和JSP(JavaServer Pages)的开发工作,而Log4j则是Apache组织提供的一个用于记录日志的开源工具,它具有...

    Struts2 日志原理及配置方法(结合Log4j)

    NULL 博文链接:https://adrain-work-163-com.iteye.com/blog/1545091

    Strtus2.3升级2.5(包含log4j升级log4j2)所需jar,和相关资料

    5. **配置Log4j2**:Log4j2的配置文件(通常为log4j2.xml或log4j2.json)需要重新编写,以利用新特性并满足日志需求。例如,你可以配置日志分级(DEBUG, INFO, WARN, ERROR等),并实现日志分片以方便日志管理和分析...

    struts2+hibernate+spring+mysql+tomcat+log4j

    Struts2、Hibernate、Spring、Log4j、Tomcat 和 MySQL 是Java Web开发中的关键组件,它们共同构建了一个高效、可扩展的Web应用程序框架。以下是对这些技术的详细解释: **Struts2**:Struts2是一个基于MVC(Model-...

    搭建SSH框架需要引入的Struts2包(log4j,spring-web,struts2-spring-plugin)

    Log4j提供了丰富的配置选项,允许开发者定制日志级别、输出格式和目的地,使得在项目运行过程中可以方便地收集和分析信息。 在实际搭建SSH框架时,我们需要将这些jar文件添加到项目的类路径中。对于Struts2和Spring...

    ssh2+log4j+异常简单框架

    【SSH2+Log4j+异常简单框架】是一种常见的Java Web开发框架组合,它整合了Struts2、Hibernate和Spring三大主流框架,并结合了Log4j日志系统,用于实现高效、灵活和可维护的项目架构。这个框架的集成使得开发者能够更...

    log4j-2.7api+core包

    此外,还提及了`log4j2.xml`,这是一个配置文件,对于Log4j的配置至关重要,不添加可能会导致运行异常。 **Log4j详解** 1. **Log4j API**:`log4j-api-2.7.jar`包含Log4j的API接口,定义了各种日志记录的级别(如...

    Struts2_Hibernate3_Log4j_ojdbc的jar包

    里面包含struts2 、hibernate3、ojdbc14.jar、 log4j-1.2.13.jar slf4j-log4j12-1.6.1.jar javassist-3.11.0.GA.jar ejb3-persistence.jar几乎是最全的了

    log4j2必需jar包

    Log4j2很容易与其他Java框架集成,如Spring、Hibernate、Struts等。这使得开发者可以在整个应用程序中保持一致的日志记录策略。 总之,"log4j2必需jar包"中的log4j-api-2.11.1.jar和log4j-core-2.11.1.jar是构建...

    ssh2 spring hibernate struts2 log4j ant

    SSH2、Spring、Hibernate、Struts2、Log4j 和 Ant 是Java开发中常见的六个框架和技术,它们在构建企业级Web应用中起着至关重要的作用。以下是对这些技术的详细说明: 1. SSH2(Spring、Hibernate、Struts2): - ...

    log4j.1.2.17

    Log4j与其他框架如Spring、Struts等有良好的集成,可以方便地在这些框架中使用日志功能。此外,通过添加插件,还可以将日志信息发送到syslog、SMTP、JMS等其他目的地。 总结来说,Log4j 1.2.17作为一个成熟的日志...

    log4j-core-2.7.zip

    描述中提到,Struts2版本2.5.10.1依赖于Log4j2,这意味着开发者在使用该版本的Struts2时,需要引入两个关键的Log4j2库:log4j-api-2.7和log4j-core-2.7。log4j-api-2.7提供了API接口,供应用程序调用,而log4j-core-...

    搭建struts hibernate log4j spring(好东西)

    ### 搭建Struts、Hibernate、Log4j与Spring集成环境详解 #### 一、简介 本文将详细介绍如何在Web项目中集成Struts、Hibernate、Log4j以及Spring框架,构建一个完整的Java Web应用程序环境。这些技术组合在一起能够...

Global site tag (gtag.js) - Google Analytics