首页 > 代码库 > jsp错误页面打印日志
jsp错误页面打印日志
其实没什么可以记载的。只是当时头晕,一直犯晕,故记录下来,防止再次犯晕。
系统中配置的错误页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错误页面打印日志
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。