logback应用日志格式参考

日志作为了解系统运行情况的重要信息来源和参考,规范和完整的日志记录是非常重要的。

根据完善的日志记录,可以获取的信息包括但不限于以下:

  1. 了解应用系统运行性能情况,各个关键业务处理步骤的响应时间,单位时间内的业务处理数量,即系统并发处理请求数量;
  2. 了解应用系统运行的成功率,业务处理成功,业务处理失败,业务处理异常的数量;
  3. 了解应用系统处理失败时的输入参数,失败位置,失败原因;
  4. 了解应用系统处理异常时的输入参数,异常位置,异常原因;
  5. 了解应用系统业务处理过程中的业务标识信息,比如openid,用户编号,手机号等,需要做敏感信息处理的情况也需要考虑;

根据日志的应用场景,可以分为接口处理日志和内部业务处理日志。

接口日志重点关注的信息包括客户端信息(具体包括ip地址,appid等)和完整的请求参数信息,以及返回给客户端的完整信息。

内部业务处理日志重点关注的信息包括业务标识信息(比如openid,用户编号,手机号,业务编号,订单号等),入参,出参信息;

参考格式:

%d %-5level [%thread][%X{clientIp}][%X{userId}][%X{sessionId}] %logger{68} %line - %msg%n

格式说明:

时间 日志级别 [线程号][客户端IP][客户编号][sessionId] 日志发生类 行号 - 日志详细信息

日志示例:

2016-08-08 11:07:42,142 INFO  [http-bio-8090-exec-2][61.175.197.205][2000000000008831][29B2291637E4EE27FB28B8EEE6171F00] c.i.s.order.OrderServiceImpl 87 - 订单创建成功:1000000000202203011012345678

对于通用日志信息,在请求入口处通过拦截器添加到MDC中,在请求处理结束时,清空MDC。

public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

    // 添加MDC配置信息
    MDC.put(ATTRIBUTE_KEY_HOST_NAME, getRemoteIp(request));
    MDC.put(ATTRIBUTE_KEY_USER_ID, "");
    MDC.put(ATTRIBUTE_KEY_SESSION_ID, request.getSession().getId());

    return super.preHandle(request, response, handler);

}

/*
* 此处ATTRIBUTE_KEY_USER_ID设置为空,在登录拦截器中,在put值进去。MDC中封装了ThreadLocal,线程结束后需要将ThreadLocal内容进行清空。
*/
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    // 清空threadLocal
    MDC.clear();
    super.afterCompletion(request, response, handler, ex);

}

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值