在error日志打印异常

在日志中打印异常,常常会看到如下的写法:.net

logger.error(e.getMessage());

或者是:日志

e.printStackTrace();

这两种其实都不太好。
e.getMessage只会打印出异常的类型,可是不会显示出错的异常方法堆栈,没法在日志中找出错误代码
而e.printStackTrace();则是将异常打印到控制台,并非打印到error日志中。code

解决方法

看logger.error源码,能够发现:blog

public void error(String msg, Throwable t);

public void error(String msg);

若是想在error日志中打印异常,能够使用第一种。get

logger.error(“xxx出错”,e);   //第二个参数是Exception

注意,方法有两个参数,经过逗号隔开,而不是用加号链接。
也就是说,并非logger.error(“xxx出错:”+e) 或 logger.error(e) 或logger.error(e.getMessage());源码

示例以下:io

try{

}catch(Exception e) {
        logger.error(“xxx出错:”,e) 
}

参考资料:
https://blog.csdn.net/heweimingming/article/details/76423186class

相关文章
相关标签/搜索