`
仅此而已
  • 浏览: 61433 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

struts2 log4j 异常日志不打印

阅读更多

  struts2开发过程中控制台不输出错误日志,log4j也没办法记录,struts2处理异常的类在 com.opensymphony.xwork2.interceptor 中, ,加上日志和控制台打印即可如下

package com.opensymphony.xwork2.interceptor;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;

import org.apache.log4j.Logger;

/**
 * <!-- START SNIPPET: javadoc -->
 *
 * A simple wrapper around an exception, providing an easy way to print out the stack trace of the exception as well as
 * a way to get a handle on the exception itself.
 *
 * <!-- END SNIPPET: javadoc -->
 *
 * @author Matthew E. Porter (matthew dot porter at metissian dot com)
 */
public class ExceptionHolder {
	private static final Logger LOG = Logger.getLogger(ExceptionHolder.class);
    private Exception exception;

    /**
     * Holds the given exception
     *
     * @param exception  the exception to hold.
     */
    public ExceptionHolder(Exception exception) {
        this.exception = exception;
    }

    /**
     * Gets the holded exception
     *
     * @return  the holded exception
     */
    public Exception getException() {
        return this.exception;
    }

    /**
     * Gets the holded exception stacktrace using {@link Exception#printStackTrace()}.
     *
     * @return  stacktrace
     */
    public String getExceptionStack() {
        String exceptionStack = null;

        if (getException() != null) {
            StringWriter sw = new StringWriter();
            PrintWriter pw = new PrintWriter(sw);

            try {
                getException().printStackTrace(pw);
                exceptionStack = sw.toString();
                LOG.error(exceptionStack);


            }
            finally {
                try {
                    sw.close();
                    pw.close();
                } catch (IOException e) {
                    // ignore
                }
            }
        }

        return exceptionStack;
    }
    
}

 

 

分享到:
评论

相关推荐

    ssh+aop+log4j+日志拦截器+注解

    它可以在方法执行前、执行后或异常时插入日志打印,帮助开发者跟踪程序运行状态,尤其在多线程和复杂业务逻辑中非常有用。 5. 注解:注解是Java SE 5.0引入的新特性,它允许元数据(关于代码的信息)直接嵌入到源...

    Spring-Struts2-Hibernate登录打印日志

    在这个“Spring-Struts2-Hibernate登录打印日志”的主题中,我们将深入探讨如何在SSH框架下实现用户登录功能,并记录相关的日志信息。 首先,让我们了解SSH框架的核心组件: 1. **Spring**:Spring框架是整个应用...

    SSH的配置、事务管理和Log4j的配置

    接下来,我们将深入探讨SSH的整合过程,事务管理以及Log4j的日志配置。 首先,**Struts1+Spring+Hibernate的整合过程**涉及到多个步骤。Struts作为MVC(模型-视图-控制器)框架,负责用户界面与后台逻辑的交互。...

    log4日志j的使用

    综上所述,Log4j是Java开发中不可或缺的工具,它的灵活性和可扩展性使其成为许多项目首选的日志解决方案。正确配置和使用Log4j,可以帮助我们有效地追踪问题,优化性能,以及更好地管理和监控我们的应用程序。在实际...

    Struts2学习文档

    #### 四、Struts2异常处理 **4.1 局部异常映射** - **用途**:局部异常映射是在某个具体的Action中对异常进行捕获并处理的方式。 **4.2 全局异常映射** - **用途**:全局异常映射是指在配置文件中统一处理所有...

    SSH整合文档教程…………

    - **利用日志记录**:合理配置log4j等日志框架,记录关键操作的日志信息,便于定位问题。 - **单元测试**:编写JUnit测试用例,对各个模块进行单元测试,确保每个部分都能独立运行。 #### 六、性能优化 - **数据库...

    java笔试面试题及答案.pdf

    7. **Servlet调试**:调试Servlet可以使用打印语句、日志工具如Log4J,以及IDE的集成调试器。查看HTML源码和返回错误页面给客户也可能是调试手段,但不常见。 8. **Servlet功能**:Servlet可以读取请求数据(显式和...

    J2EE开发规范

    规范建议使用统一的日志框架(如Log4j)来记录关键事件、错误信息和调试日志。日志级别(ERROR、WARN、INFO、DEBUG)的选择应根据日志消息的重要性和紧急程度来确定。 #### UI开发规范 用户界面的一致性和可用性是...

    java面试题集锦

    Log4J是一种日志工具,可用于跟踪调试信息。 - **选项C**: 正确。IDE集成的调试器提供断点、步进等功能,非常有用。 - **结论**: A、B和C选项正确。 **9. Servlet的功能** - **选项A**: 正确。读取客户端发送的...

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

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

    JAVA开发人员的十大戒律(TXT文件)

    建议在正式部署前移除这些打印语句,或者使用日志记录框架(如Log4j)来代替。 #### 七、注意GUI设计 对于用户界面(GUI)的设计而言,简洁直观的布局比复杂的交互更为重要。良好的GUI能够提升用户体验,降低用户...

Global site tag (gtag.js) - Google Analytics