logger.error打印完整错误堆栈信息的正确使用方法

2 篇文章 0 订阅
2 篇文章 0 订阅
在使用sl4j进行异常日志打印的时候,有几种方式,那么如果需要打印完整堆栈信息,应该用哪一种呢?

模拟代码,模拟了一个下标越界异常,我们一起来看看

    public static void main(String[] args) {
        try {
            logger.info("开始");
            String[] s = new String[]{"1","2"};
            System.out.println(s[2]);
            logger.info("结束");
        }catch (Exception e){
            logger.error(e);
            logger.error(e.getMessage());
            logger.error("错误",e.getMessage());
            logger.error("错误",e);
        }
    }
1.logger.error(e)  自动调e.toString()方法
输出:
09:41:12.969 INFO  com.ieslab.wanganzhicai.job.WangAnZhiCaiDeviceStateScheduled 48 main - 开始
09:41:12.971 ERROR com.ieslab.wanganzhicai.job.WangAnZhiCaiDeviceStateScheduled 53 main - java.lang.ArrayIndexOutOfBoundsException: 2
2.logger.error(e.getMessage())  异常错误信息
输出:
09:42:40.253 INFO  com.ieslab.wanganzhicai.job.WangAnZhiCaiDeviceStateScheduled 48 main - 开始
09:42:40.254 ERROR com.ieslab.wanganzhicai.job.WangAnZhiCaiDeviceStateScheduled 54 main - 2
3.logger.error("错误",e.getMessage());  自定义异常信息与错误异常信息
输出:
09:43:23.710 INFO  com.ieslab.wanganzhicai.job.WangAnZhiCaiDeviceStateScheduled 48 main - 开始
09:43:23.711 ERROR com.ieslab.wanganzhicai.job.WangAnZhiCaiDeviceStateScheduled 55 main - 错误
4.logger.error("错误",e);  自定义异常信息与堆栈信息
输出:
09:44:08.820 INFO  com.ieslab.wanganzhicai.job.WangAnZhiCaiDeviceStateScheduled 48 main - 开始
09:44:08.823 ERROR com.ieslab.wanganzhicai.job.WangAnZhiCaiDeviceStateScheduled 56 main - 错误 java.lang.ArrayIndexOutOfBoundsException: 2
	at com.ieslab.wanganzhicai.job.WangAnZhiCaiDeviceStateScheduled.main(WangAnZhiCaiDeviceStateScheduled.java:50) [classes/:?]
	```

如果要打印完整的堆栈错误信息请使用
logger.error(“错误”,e)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值