Designed by 77
加载资源 ......
感谢 ♥ 作者
先不感谢了

logger.error打印完整的错误堆栈信息

使用Spring Boot项目中的日志打印功能的时候,发现调用Logger.errror()方法的时候不能完全地打印出网站的错误堆栈信息,只能打印出这个错误是一个什么错误。

为什么呢,原因在于这个方法是一个重载的方法(在一个类里面,方法名字相同,而参数不同)。

public void error(String msg, Throwable t);

public void error(String msg);

如果只是传一个参数e进去,那么e就会被当作是String类型(会自动掉哦那个toString()方法把Exception转成String),而不是Exception类型。

如果想打印堆栈信息,那么必须传两个或两个以上的参数,实际上就是为了调用上面的第一个多态方法。

因此正确的调用方法应该是:

Logger.error("出错了", e); // 第二个参数是Exception类型

而不是:

Logger.error("出错了" + e);
Logger.error(e);
Logger.error(e.getMessage);

调用方法的时候最好点进源码里面查看是否存在重载的情况,避免调用不当造成没有达到预期的效果。

 

"很多人变了,很多事变了。"

posted @ 2019-06-03 09:38  yanggb  阅读(4904)  评论(1编辑  收藏  举报