打印日志注意事项:
1.log.error(“异常信息:”+e.getMessage);
2.log.error(“异常信息:”+e);
3.log.error(“异常信息:”,e);
打印效果:
-
1.异常信息:null / 异常信息:For input string: “4273010258”
-
2.异常信息:java.lang.NullPointerException:null /异常信息:- java.lang.NumberFormatException:For input string: “4273010258”
-
3.异常信息:+ 堆栈信息
解读:
有时候logger.error不能完全地打印出网站的错误堆栈信息,只能打印这个错误是一个什么错误。
为什么?
看Logger.error源码
public void error(String msg, Throwable t);
public void error(String msg);
如果只传一个参数e进去,那么e就被认为是String类型(会自动调toString()方法把Exception转成String),而不是Exception类型。
如果想打印堆栈信息,那么必须传两个或以上参数,实际上就是为了调用public void error(String msg, Throwable t);
所以我们的写法可以是:
Logger.error(“xxx出错”,e); //第二个参数是e
而不是:
Logger.error(“xxx出错:”+e) 或 logger.error(e) 或logger.error(e.getMessage);