在项目的资源文件目录中添加log4j.properties。
比如:
log4j.rootLogger = INFO,stdout,D,E
###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
###
log4j.appender.D = org.apache.log4j.RollingFileAppender
log4j.appender.D.File = logs/serverdebug.log
log4j.appender.D.MaxFileSize=1024KB
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
###
log4j.appender.E = org.apache.log4j.RollingFileAppender
log4j.appender.E.File =logs/servererror.log
log4j.appender.D.MaxFileSize=1024KB
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
编写全局异常处理类
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工具包
// 使用第三方的webservice发送短信
// 显示错误页
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("error/exception");
return modelAndView;
}
}
在springmvc.xml配置文件中装在异常处理类。
<bean class="com.xxx.xxx.xxx.GlobalExceptionResolver"></bean>
在方法中添加异常,测试。