springmvc控制器错误拦截统一处理

使用@ControllerAdvice注解,实现对所有控制器错误信息的拦截.

java类:

package com.yourubber.web;

import javax.servlet.http.HttpServletRequest;

import org.apache.log4j.Logger;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;

@ControllerAdvice
public class ExceptionHandlerController {
	private static final Logger logger = Logger.getLogger(ExceptionHandlerController.class);
	public static final String DEFAULT_ERROR_VIEW = "error";// 错误页面

	@ExceptionHandler(value = { Exception.class, RuntimeException.class })
	public ModelAndView defaultErrorHandler(HttpServletRequest request, Exception e) {
		ModelAndView mav = new ModelAndView(DEFAULT_ERROR_VIEW);
		// 将堆栈信息输出
		logger.error(e.getMessage(), e);
		return mav;
	}
}

log4j配置文件:

log4j.rootLogger=DEBUG,console,INFO_FIle,ERROR_FILE

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.threshold=INFO
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n

log4j.appender.INFO_FIle=org.apache.log4j.RollingFileAppender
log4j.appender.INFO_FIle.Append=true
log4j.appender.INFO_FIle.File=/deploy/yourubber/info.log
log4j.appender.INFO_FIle.Threshold=INFO
log4j.appender.INFO_FIle.layout=org.apache.log4j.PatternLayout
log4j.appender.INFO_FIle.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n
log4j.appender.INFO_FIle.MaxFileSize=10MB

log4j.appender.ERROR_FILE=org.apache.log4j.RollingFileAppender
log4j.appender.ERROR_FILE.Append=true
log4j.appender.ERROR_FILE.File=/deploy/yourubber/error.log
log4j.appender.ERROR_FILE.Threshold=ERROR
log4j.appender.ERROR_FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.ERROR_FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%5p] - %c -%F(%L) -%m%n
log4j.appender.ERROR_FILE.MaxFileSize=10MB


你可能感兴趣的:(springmvc控制器错误拦截统一处理)