`
ssxxjjii
  • 浏览: 951029 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

struts2配合log4j打印异常栈信息

阅读更多

struts2配合log4j打印异常栈信息

 

关于配置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中需要配置控制台输出。

 

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

 

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

该拦截器有三个参数。

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 应该是自定义日志。没怎么用,有需求的可以自己研究研究。有知道用途的给俺回复下啊。呵呵

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

<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" />

 

分享到:
评论
5 楼 liweitsky 2012-10-10  
楼主威武,真的行了,困扰好久了
4 楼 tiwenzhuanyong 2012-09-06  
感谢楼主!终于搞定了
3 楼 qq8580258 2011-07-01  
logCategory 打印自定义log4j的策略......
2 楼 glchen 2011-04-07  
经尝试,确实可以输出了!楼主V5....
1 楼 lzn1446 2011-02-23  
困扰了几天的日志不能输出的问题终于好了~
是说怎么换个struts2.1.6报错信息就打不出了的~
谢谢了~

相关推荐

    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