expiator

在error日志打印异常

在日志中打印异常,经常会看到以下的写法:

logger.error(e.getMessage());

或者是:

e.printStackTrace();

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

解决方法

看logger.error源码,可以发现:

public void error(String msg, Throwable t);

public void error(String msg);

如果想在error日志中打印异常,可以使用第一种。

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

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

示例如下:

try{

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


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

分类:

技术点:

相关文章:

  • 2021-05-19
  • 2022-01-19
  • 2021-11-20
  • 2021-11-20
  • 2021-11-20
  • 2021-12-25
  • 2021-05-02
  • 2021-05-26
猜你喜欢
  • 2021-11-20
  • 2021-12-24
  • 2021-10-28
  • 2021-08-16
  • 2021-05-06
  • 2021-04-15
  • 2021-11-20
相关资源
相似解决方案