异常日志打印

当我们的系统发生异常时,我们记录相应参数的日志有助于我们查看线上问题,特别是线上的用户众多,当客服反馈某某用户做了什么操作,发生了什么问题,这时参数的作用就体现出来了。那如果我们不记录异常的请求的参数,那么我们很难回溯当初发生问题时的参数场景,难以分析问题所再,甚至线上异常日志非常多,但是你找不到你需要的那条。这就有点尴尬了


@ControllerAdvice
public class AspectController {

    protected final Logger logger = LoggerFactory.getLogger(AspectController.class);

    @ExceptionHandler(Exception.class)
    public ResultDTO handleException(RuntimeException ex) {
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
        request.getParameterMap();

        StringBuilder stringBuilder = new StringBuilder();
        stringBuilder.append(" 请求url:")   //记录请求的url
                .append(request.getRequestURI())
                .append(" url参数:")//记录请求的url后面的参数
                .append(request.getQueryString())
                .append(" userAgent") //记录请求总苏想你想你
                .append(request.getHeader(" user-agent")) //记录请求终端信息
                .append(" uid") //记录用户信息
                .append(request.getHeader(" userId"));  
        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
            stringBuilder.append(" body:") //记录请求体body信息
                    .append(reader.readLine());
        } catch (IOException e) {
            e.printStackTrace();
        }

        logger.error("你想要打印的异常:请求信息: " + stringBuilder.toString(), ex);
        return ResultDTO.error();
    }

}

如果你有更多需要的参数,可以继续添加 哦

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值