`

struts2全局异常处理及配合log4j异常日志记录

阅读更多

在编写代码时除了使用try catch来捕获异常之外,还可以用struts2的声明式异常处理,即在Action中直接抛出异常交给struts2来处理,并且在xml文件中进行相应的配置,如下:

 

<!--设置全局返回结果 -->
<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>
<!--定义要捕获的异常-->
<global-exception-mappings>  
        <exception-mapping result="error" exception="java.lang.Exception"></exception-mapping> 
        <exception-mapping result="sql" exception="java.sql.SQLException"></exception-mapping> 
</global-exception-mappings>

 以上是全局异常的处理,也可以处理特定Action的异常,如下:

<interceptor-ref name="defaultStack">
        <!--覆盖defultStack中的exception设置,启用它的日志功能-->
        <param name="exception.logEnabled">true</param>  
        <param name="exception.logLevel">error</param>
</interceptor-ref>

 

 

<action name="login" class="userAction" method="login">
        <exception-mapping result="login" exception="com.exceptions.LoginException"></exception-mapping>
        <result name="login">/webPage/exception/login_error.jsp</result>
</action>

 

 

特定Action的异常声明优先于全局异常。

至于配合log4j记录异常日志是利用struts2中提供的异常拦截器ExceptionMappingInterceptor,当发生指定异常后,会由它处理,因为这个类有写日志的功能,默认是禁用的,因此直接将其启用即可,如下:

 再配合log4j中设置

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

 或

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

 

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

 

 

分享到:
评论

相关推荐

    Struts2之异常处理案例struts003

    Struts2集成了Log4j等日志框架,开发者可以配置日志级别,以便在开发和生产环境中获取合适的日志信息。 10. **最佳实践** - 应该尽量避免在Action方法中使用`try-catch`块,而是依赖于Struts2的异常处理机制。 - ...

    struts2中异常处理(demo)

    Struts2可以通过集成日志框架,如Log4j或Java内置的日志API,来记录异常堆栈跟踪和其他相关信息。 通过以上方法,Struts2能够提供灵活且强大的异常处理能力,使得开发者能够更好地控制和管理应用程序的异常行为,...

    Struts1异常处理

    5. **结合Log4j等日志框架**:在处理异常时,通常会配合Log4j等日志框架记录异常信息,以便于调试和问题追踪。 6. **错误页面设计**:为了提供良好的用户体验,错误页面应当清晰地向用户展示错误信息,同时避免暴露...

    log4j-core-2.7.zip

    1. **配置文件**:`log4j2.xml`或`log4j2.json`是Log4j2的配置文件,可以设置全局日志级别、定义Appenders(日志输出目标)如控制台、文件、数据库等,Filters(过滤器)来决定哪些日志会被记录,以及Layouts(布局...

    Struts2的异常处理

    这篇博客主要探讨了在Struts2中如何有效地管理和处理异常,从而提高应用的稳定性和用户体验。 在Struts2中,异常处理主要通过两种方式实现:全局异常处理和动作级别的异常处理。全局异常处理适用于整个应用,而动作...

    ssh中log4j的使用

    在SSH(Spring、Struts和Hibernate)框架中,Log4j是一个非常重要的组件,它用于记录应用程序的运行日志,帮助开发者追踪程序错误、调试代码和监控系统性能。本篇文章将详细阐述如何在SSH环境中配置和使用Log4j,...

    struts异常处理

    Struts2提供了内置的日志支持,也可以集成第三方日志框架如Log4j或SLF4J,以便于跟踪和调试。 总的来说,Struts2的异常处理机制提供了灵活且强大的方式来管理和处理应用程序中的异常。开发者可以根据项目的具体需求...

    ssh结合log4j例子

    2. **Struts2整合Log4j**:在Struts2应用中,可以通过配置struts.xml或使用filter来初始化Log4j,确保每个Action类都能获取到日志实例,便于跟踪请求处理过程。 3. **Hibernate与Log4j**:Hibernate的配置文件...

    struts错误处理机制小例子

    Struts框架集成了Log4j或其他日志框架,可以帮助开发者跟踪和诊断问题。 8. ** strut2框架中的拦截器(Interceptor)**:Struts2引入了拦截器,可以在Action执行前后进行额外操作,包括错误处理。通过自定义拦截器...

    struts2高级部分

    通过以上的介绍可以看出,Struts2框架中的异常处理机制非常灵活且强大,不仅支持开发模式下的详细错误信息记录,还提供了丰富的异常映射配置选项,使得开发者可以根据不同的需求定制异常处理逻辑。这对于提升应用...

    Struts2调试方法

    8. **异常处理**:Struts2提供了全局异常处理机制,当Action执行抛出异常时,可以通过全局异常处理器进行统一处理。确保异常处理器配置正确,并能捕获到预期的异常。 9. **使用开发工具**:利用浏览器的开发者工具...

    log4j-tutorial-en.pdf

    log4j 是一个广泛应用于 Java 应用程序的日志记录工具,由 Apache 软件基金会开发并维护。该工具提供了丰富的功能,允许开发者在应用程序中进行日志级别的配置,并支持多种输出方式,如控制台、文件、邮件等。本教程...

    J2EE项目异常处理的几种方案

    推荐使用如Log4j、Logback等成熟的日志框架,它们提供了丰富的日志级别和格式化选项,便于日志的管理和分析。 综上所述,J2EE项目中的异常处理策略应包括多层面的设计与实施,从代码层面的异常捕获,到框架层面的...

    struts-2.5所有jar包

    - **异常处理**:Struts2提供了全局的异常处理机制,可以通过全局结果类型来处理未捕获的异常。 总的来说,Struts2.5提供的所有jar包是一个完整的框架环境,允许开发者快速构建和部署Java Web应用程序。理解并掌握...

    struts2标准jar包集

    Struts2是一个强大的MVC(模型-...- 可能还有其他依赖,如Apache Commons库、log4j日志库等 了解这些知识点后,开发者可以更有效地构建基于Struts2的Java Web应用,并与Spring框架协同工作,提升开发效率和应用性能。

    slf4j-all-log4j12-1.4.3.jar.zip CXF整合SSH你可能需要它

    2. **配置Log4j**:在项目中创建log4j.properties或log4j.xml配置文件,设置日志级别、输出格式、目的地等,确保SLF4J可以通过Log4j进行日志记录。 3. **配置CXF**:在CXF的配置文件(如cxf.xml)中设置服务端点、...

    struts_exception用例

    Struts框架支持日志框架如Log4j或Java的内置日志系统,可以帮助开发者追踪和诊断问题。 8. **错误消息显示** 为了给用户提供友好的反馈,可以使用Struts的`fieldErrors`和`globalErrors`标签在视图层显示错误消息...

    struts2+hibernate花店管理系统原代码

    7. 日志和异常处理:通过引入Log4j和全局异常处理,可以记录系统运行日志并优雅地处理程序中的异常。 通过学习和分析这个系统,开发者不仅可以深入理解Struts2和Hibernate的协同工作方式,还能掌握如何构建一个完整...

    struts2写的在线考试系统

    7. **错误处理和日志记录**:通过Struts2的全局异常处理,可以统一捕获并处理程序运行中的错误,同时利用日志框架(如Log4j)记录异常信息,便于问题排查和系统优化。 在实际开发过程中,开发者还需要编写Action、...

Global site tag (gtag.js) - Google Analytics