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中需要配置控制台输出。
原理:
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 应该是自定义日志。
相关推荐
自定义异常处理器可以实现更复杂的异常处理逻辑,比如发送邮件通知、记录日志等。 6. **配置文件中的异常处理设置** 在`struts.xml`配置文件中,异常处理的配置通常如下: ```xml ...
在处理异常时,记录详细的错误日志对调试至关重要。Struts2集成了Log4j等日志框架,开发者可以配置日志级别,以便在开发和生产环境中获取合适的日志信息。 10. **最佳实践** - 应该尽量避免在Action方法中使用`...
6. **日志记录**:在处理异常时,记录详细的错误日志对调试和问题排查至关重要。Struts2可以通过集成日志框架,如Log4j或Java内置的日志API,来记录异常堆栈跟踪和其他相关信息。 通过以上方法,Struts2能够提供...
在Struts2中,Introspector是一个核心组件,用于检查和获取Action类的属性,这对于实现诸如日志记录、数据验证等任务非常有用。这篇博客文章可能探讨了如何利用Struts2的Introspector来实现日志功能。 日志在软件...
拦截器可以捕获并处理Action执行过程中的异常,或者记录日志,甚至将用户重定向到错误页面。创建自定义拦截器需要实现`Interceptor`接口,并在`intercept()`方法中处理异常。然后,在`struts.xml`中注册该拦截器,并...
面向切面编程(Aspect Oriented Programming,AOP)是一种编程范式,它允许程序员将关注点(如日志记录、事务管理、安全检查等)与主要业务逻辑分离,提高代码的可复用性和可维护性。在Spring框架中,AOP通过切面...
日志拦截器在Struts2中扮演着至关重要的角色,它允许开发者记录和控制应用程序中的各种操作,以便于调试、性能分析和日志记录。在本篇文章中,我们将深入探讨Struts2的日志拦截器,以及如何使用`LoginfoInterceptor....
这在处理共性问题,如权限检查、日志记录等方面非常有用。 5. **结合Log4j等日志框架**:在处理异常时,通常会配合Log4j等日志框架记录异常信息,以便于调试和问题追踪。 6. **错误页面设计**:为了提供良好的用户...
拦截器链是Struts2的一大特色,允许开发者自定义拦截器,实现如权限验证、日志记录、事务管理等功能。 4. **结果类型(Result)**:Action执行完成后,会返回一个结果类型,告诉框架如何处理后续的响应。Struts2内置...
- **拦截器**:拦截器是Struts2的一个重要特性,可以在请求到达Action之前或之后执行特定的操作,如验证用户登录状态、日志记录等。 #### 四、Struts2进阶技巧 - **ModelDriven模式**:该模式允许Action实例共享同...
3. **Interceptor**:拦截器是Struts2的一个强大特性,它们在Action调用前后执行,可以实现如日志记录、权限验证等功能。 4. **配置文件**:struts.xml是Struts2的主要配置文件,定义了Action、Result和Interceptor...
3. **拦截器(Interceptors)**:拦截器是Struts2的一大特色,它们按照预定义的顺序在Action调用前后执行,可以实现如日志记录、权限验证、性能监控等功能。常见的拦截器有`params`(处理请求参数)、`validation`...
- Struts2的拦截器是其一大特色,它们允许在Action执行前后插入自定义逻辑,如日志记录、权限验证、数据校验等。用户可以自由组合拦截器栈,以实现不同的业务需求。 4. **结果类型(Result Types)** - 结果类型...
6. **拦截器(Interceptors)**:拦截器是Struts2中的一个强大特性,它可以拦截Action执行前后的流程,实现日志记录、权限验证、事务管理等功能。常见的拦截器有Params拦截器(处理请求参数),Validation拦截器...
拦截器可以插入到Action调用链中,执行额外的任务,如日志记录、权限检查、性能监控等。 5. **结果类型(Result Type)**:结果类型定义了Action执行后如何跳转到视图。例如,"dispatcher"是最常见的结果类型,用于...
6. **拦截器**:拦截器是Struts2的核心组件,用于处理请求、验证输入、事务管理、日志记录等。常见的拦截器有Params(处理请求参数)、Validation(表单验证)、Exception(异常处理)等。 7. **插件系统**:Struts...
Struts2是一个流行的Java web框架,它为开发者提供了一种模型-视图-控制器(MVC)架构,便于构建可维护、可扩展的web应用程序。随着技术的发展,框架也需要不断更新以修复安全漏洞、提高性能并引入新特性。在本文中...
通过自定义拦截器,开发者可以实现如日志记录、权限验证、事务管理等通用功能,提高代码复用性。预设的拦截器如Params拦截器用于参数绑定,Validation拦截器进行字段验证,Exception拦截器处理异常。 此外,笔记...
拦截器(Interceptor)是Struts2的一个重要特性,它们允许在Action调用前后插入额外的逻辑,例如日志记录、权限检查、数据校验等。通过合理的拦截器栈配置,可以实现灵活的应用行为控制。 “Struts2API”文档则是...