定义全局异常处理器

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.spi.LoggerFactory;
import org.slf4j.Logger;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
/**
 * 全局异常处理器
 * <p>Title: GlobalExceptionResolver</p>
 * <p>Description: </p>
 * @version 1.0
 */
public class GlobalExceptionResolver implements HandlerExceptionResolver {
    private static final Logger logger=org.slf4j.LoggerFactory.getLogger(GlobalExceptionResolver.class);
    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
            Exception ex) {
        //打印控制台
        ex.printStackTrace();
        //写日志
        logger.debug("测试输出的日志");
        logger.info("系统发生异常了");
        logger.error("系统发生异常", ex);
        //发邮件 发短信
        //使用jmail工具包,发短信使用第三方的webservice
        //显示一个错误页面
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("error/exception");
        return modelAndView;
    }

}

在这里面使用的是SLF4J的包,

下面是log4j.properties的文件

log4j.rootLogger=INFO,A3,STDOUT

log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=[%p] [%l] %10.10c - %m%n

log4j.appender.A3=org.apache.log4j.RollingFileAppender
log4j.appender.A3.file=logs/server.log
log4j.appender.A3.MaxFileSize=1024KB
log4j.appender.A3.MaxBackupIndex=10
log4j.appender.A3.layout=org.apache.log4j.PatternLayout
log4j.appender.A3.layout.ConversionPattern=\n\n[%-5p] %d{yyyy-MM-dd HH\:mm\:ss,SSS} method\:%l%n%m%n

下面是springMVC的配置

<bean class="cn.baidu.exception.GlobalExceptionResolver">

猜你喜欢

转载自blog.csdn.net/zhangzuyuanbest/article/details/81224789