java日志处理log

一.安装Lombok

使用idea下载Lombok插件
File—>Setting----->plungin
在这里插入图片描述
在这里插入图片描述
搜索Lombok插件下载,安装好后需要重启idea。

二.使用

如果想使用log.info等等时,先在类上面加个注解@Slf4j,然后就可以使用log函数了。
在这里插入图片描述
看起来十分简单,但是这仅仅是开始,往下走。

三.log填坑

比如这个controller层,进入时我想记录下参数,这很平常吧,我刚开始是这样做的,

@ApiOperation(value = “测试异常机制”)

@GetMapping(value = "/testError", produces = "application/json;charset=UTF-8")
public ResponseData<String> testError(String key) {
    log.info("TestController testError", key);
    ResponseData<String> responseData = new ResponseData<>();
    try {
        responseData.setData(testService.testError(key));
    } catch (Exception e) {
        log.error("TestController testError", e.getMessage(),e);
        responseData.setMessage(e.getMessage());
        responseData.setSuccess(false);
    }
    return responseData;
}

这时候用的是log.info,因为此时不会有错误嘛,只需要打印下信息就好了,我们看看info里面的方法。
在这里插入图片描述

看起来很合理嘛,按照预期的结果,如果我传入参数的key值为yyyyyy,打印出来的内容应该是这样的:
TestController testError yyyyyy,但是实际上打印结果却是这样的。
在这里插入图片描述
根本没有把参数打印出来。
把截图放出来,可以看到Intelij Idea将此处标记为警告了,鼠标放上去会提示警告信息,意思大概是说参数个数对应不上。平时我都不在这些警告信息,嘿嘿,这下原来警告信息也不能忽略。
在这里插入图片描述
原来这玩意和占位符有关,类似MyBatis的#{}占位符,直接上解决方式,多个参数就中间用逗号隔开,好了,警告消失了。此外,Exception可以不加占位符。
在这里插入图片描述
吃一堑长一智,以后别看日志的时候发现参数为空就以为是参数没传,去检查下是不是日志记录的就有问题。

四.控制台不打印堆栈信息

解决方式就是我上面那种写法就好了,
说下情况,如果对异常进行了捕获,如果不将Exception打印出来,那么出错的话控制台将看不到你的平时看到的堆栈信息,不信你们试试,当然,如果不捕获异常直接抛出是可以显示在控制台的。
在这里插入图片描述
e.getMessage是打印错误内容,
e.toString()获取的信息包括异常类型和异常详细消息
e:在控制台打印出异常种类,错误信息和出错位置等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值