码迷,mamicode.com
首页 > Web开发 > 详细

jsp错误页面打印日志

时间:2014-11-14 14:24:26      阅读:669      评论:0      收藏:0      [点我收藏+]

标签:style   io   ar   sp   java   for   on   log   html   

其实没什么可以记载的。只是当时头晕,一直犯晕,故记录下来,防止再次犯晕。

系统中配置的错误页500.jsp。有需求是在该jsp中记录错误日志信息,当时调用了后台封装的一个组合Exception信息的方法:

public static String getStackTraceMessage(Exception e){
		String message="";
		message+=e+"\n";
		StackTraceElement[] traces = e.getStackTrace();
		if(traces!=null && traces.length>0){
			for(StackTraceElement element:traces){
				message+="\tat "+element.getClassName()+"."+element.getMethodName()+"("+
						element.getFileName()+":"+element.getLineNumber()+")\n";
			}
		}
		return message;
	}

用于记录详细的异常信息。

BUT!这个是有错误的!错误信息如下:

/WEB-INF/pages/errorpage/500.jsp:14: error: method getStackTraceMessage in class ExceptionCommonUtil cannot be applied to given types;
    logger.info("\u7a0b\u5e8f\u51fa\u73b0\u5f02\u5e38\uff1a{}", ExceptionCommonUtil.getStackTraceMessage(exception));
                                                                                   ^
  required: Exception
  found: Throwable
  reason: actual argument Throwable cannot be converted to Exception by method invocation conversion
1 error
1 warning

唉,原来jsp里面内置的exception对象是Throwable的实例。而Throwable是Exception的父类,父类转化成子类需要强转。

后来就琢磨重载一下组合方法吧,在方法里将jsp传过来的exception强转成Exception再调用原来的方法。可是又想起Throwable的子类除了Exception还有Error,虽然情况很少

出现甚至没有(没有查证),但这种设计终归不完美。

最后同事提醒了一句:为什么不用slf4j的logger.error方法啊...为什么....为...

以此文谨记我可爱的同事,谨记我的榆木疙瘩!

jsp错误页面打印日志

标签:style   io   ar   sp   java   for   on   log   html   

原文地址:http://blog.csdn.net/yichenlian/article/details/41116151

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!