`

struts2异常日志记录

    博客分类:
  • java
 
阅读更多

struts2配合log4j打印异常栈信息

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

[html] view plaincopy
 
  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拦截器中配置参数如下

[html] view plaincopy
 
  1. <interceptor-ref name="defaultStack">  
  2.     <param name="exception.logEnabled">true</param>  
  3.     <param name="exception.logLevel">error</param>  
  4. </interceptor-ref>  


再配合log4j中设置

[html] view plaincopy
 
  1. log4j.logger.com.opensymphony.xwork2=WARN   


 

 或

[html] view plaincopy
 
  1. log4j.logger.com.opensymphony.xwork2=ERROR  

 

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

原理:

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

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

该拦截器有三个参数。

[html] view plaincopy
 
  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 应该是自定义日志。

分享到:
评论

相关推荐

    web项目常用jar包及说明.zip

    2.commons-logging-1.1.1.jar(ASF出品的日志包,struts2 2、spring、hibernate框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录) 3.common-annotations.jar(支持注解的包) 4.aspectjrt.jar(支持AOP的包) 5....

    使用Spring更好地处理Struts动作

    加强应用程序在拦截器中的日志记录逻辑会产生一个更可读的、实用的代码基础,所以拦截器广泛用于日志记录。您很快就会看到,为了处理横切关注点,Spring AOP 发布了它自己的拦截器,您也可以编写您自己的拦截器。

    SSH 项目 整合jar包

    2.commons-logging-1.1.1.jar(ASF出品的日志包,struts2 2、spring、hibernate框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录) 3.common-annotations.jar(支持注解的包) 4.aspectjrt.jar(支持AOP的包) 5....

    SSH 框架所需JAR包

    2.commons-logging-1.1.1.jar(ASF出品的日志包,struts2 2、spring、hibernate框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录) 3.common-annotations.jar(支持注解的包) 4.aspectjrt.jar(支持AOP的包) 5....

    SpringBoot 自定义拦截器 的 源代码

    我们对拦截器并不陌生,无论是 Struts 2 还是 Spring MVC 中都提供了拦截器功能,它可以根据 URL 对请求进行拦截,主要应用于登陆校验、权限验证、乱码解决、性能监控和异常处理等功能上。Spring Boot 同样提供了...

    Spring面试题

    在典型的面向对象开发方式中,可能要将日志记录语句放在所有方法和 Java 类中才能实现日志功能。在 AOP 方式中,可以反过来将日志服务模块化,并以声明的方式将它们应用到需要日志的组件上。当然,优势就是 Java 类...

    react-router-ga:适用于React Router的Google Analytics(分析)组件

    当前不支持自定义事件,异常,用户计时或社交互动的日志记录。 道具 Struts 类型 描述 默认值 id 细绳 Google Analytics(分析)跟踪ID 必需的 basename 细绳 如果提供,react-router-ga将在每个页面视图的路径...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     6.1 关系数据库按主键区分不同的记录  6.1.1 把主键定义为自动增长标识符类型  6.1.2 从序列(Sequence)中获取自动增长的标识符 6.2 Java语言按内存地址区分不同的对象 6.3 Hibernate用对象标识符(OID)来区分...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    记录软件 思维导图 office--Note 邮件管理 性能优化 分层优化 系统级别 中间件级别 JVM级别 代码级别 分段优化 前端 web应用 服务应用 资源池 数据库 大数据与nosql zookeeper hadoop hbase ...

    ARCH4系统开发指南

    2.28.2 Struts2校验框架应用 71 2.28.2.1 校验配置文件 71 2.28.2.2 角色Insert页面示例 71 2.28.2.3 用户Query页面示例 73 2.28.2.4 多行输入域校验 75 2.29 多语言管理 77 2.29.1 定义输入域的name属性和资源文件 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     6.1 关系数据库按主键区分不同的记录  6.1.1 把主键定义为自动增长标识符类型  6.1.2 从序列(Sequence)中获取自动增长的标识符 6.2 Java语言按内存地址区分不同的对象 6.3 Hibernate用对象标识符(OID)来区分...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     6.1 关系数据库按主键区分不同的记录  6.1.1 把主键定义为自动增长标识符类型  6.1.2 从序列(Sequence)中获取自动增长的标识符 6.2 Java语言按内存地址区分不同的对象 6.3 Hibernate用对象标识符(OID)来区分...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     6.1 关系数据库按主键区分不同的记录  6.1.1 把主键定义为自动增长标识符类型  6.1.2 从序列(Sequence)中获取自动增长的标识符 6.2 Java语言按内存地址区分不同的对象 6.3 Hibernate用对象标识符(OID)来区分...

    java开源包2

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    整理后java开发全套达内学习笔记(含练习)

    日志,记录 [lɒg] native (关键字) ?? ['neitiv] nested [java] 嵌套的 ['nestid] '如:内部类(nested classes) Object [java] 对象 ['ɒbdʒekt] Overload [java] 方法的重载(不同参数列表的同名方法) [,әuvә...

    JavaCenter Home v2.0 GBK build 20110324

    系统用MVC设计模式,采用Struts、Hibernate框架及中间件的结合既实现了业务逻辑与控制逻辑的有效分离,提高了层次结构的清晰度,提高了复用的粒度降低了开发代价和维护代价,同时保证了软件的质量使其更具有鲁棒性...

    JavaCenter Home v2.0 UTF8源码 build 20110324

    系统用MVC设计模式,采用Struts、Hibernate框架及中间件的结合既实现了业务逻辑与控制逻辑的有效分离,提高了层次结构的清晰度,提高了复用的粒度降低了开发代价和维护代价,同时保证了软件的质量使其更具有鲁棒性...

    JavaCenter Home v2.0 GBK源码 build 20110324

    系统用MVC设计模式,采用Struts、Hibernate框架及中间件的结合既实现了业务逻辑与控制逻辑的有效分离,提高了层次结构的清晰度,提高了复用的粒度降低了开发代价和维护代价,同时保证了软件的质量使其更具有鲁棒性...

    java开源包1

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

Global site tag (gtag.js) - Google Analytics