spring 全局异常
日志的四个级别
debug 最低
info
警告
error 最高
日志配置文件 log4j.properties
log4j.rootLogger=INFO,A3,STDOUT
#info 日志级别
#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
# A3 对象 RollingFileAppender循环写日志
# A3.file 日志位置
# A3.MaxFileSize 单个日志文件大小
# A3.layout.ConversionPattern 输出格式
# A3.MaxBackupIndex 最大文件记录数
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
java实现代码
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
/**
* 全局异常处理器
* @author yun
*
*/
public class GlobalExceptionResolver implements HandlerExceptionResolver {
private static final Logger LOGGER=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工具包
//展示错误页面
ModelAndView modelAndView =new ModelAndView();
modelAndView.setViewName("error/exception");
return modelAndView;
}
}
springmvc.xml文件配置
<!-- 全局异常处理器 -->
<bean class="mall.manager.exception.GlobalExceptionResolver" />
相关jar包
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>