当前位置: 首页 > news >正文

通过Slf4j中的MDC实现在日志中添加用户IP功能

一、slf4j中MDC是什么
slf4j除了trace、debug、info、warn、error这几个日志接口外,还可以配合MDC将数据写入日志。换句话说MDC也是用来记录日志的,但它的使用方式与使用日志接口不同。

在使用日志接口时我们一般这么做

  log.debug("log debug");

MDC从使用方式上有些不同,我对它的理解是MDC可以将一个处理线程中你想体现在日志文件中的数据统一管理起来,根据你的日志文件配置决定是否输出。
比如以下但不限于以下场景可以考虑使用MDC来达到目的
1.我们想在日志中体现请求用户IP地址
2.用户使用http客户端的user-agent
3.记录一次处理线程的日志跟踪编号(这个编号目的是为了查询日志方便,结合grep命令能根据跟踪编号将本次的处理日志全部输出)

二、功能实现

public class LogInterceptor implements HandlerInterceptor {private final static String IP_KEY = "ip";@Overridepublic void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)throws Exception {// 删除用户IPMDC.remove(IP_KEY);}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView mav)throws Exception {}@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {String ip = IPUtils.getIpAddr(request);MDC.put(IP_KEY, ip);return true;}
}

三、参考资料

slf4j中的MDC-CSDN博客

http://www.lryc.cn/news/365397.html

相关文章:

  • 代码随想录算法训练营第四十九天| 139.单词拆分、背包问题总结
  • STM32F103VE和STM32F407VE的引脚布局
  • 搜维尔科技:使用 Xsens 动作捕捉技术创建栩栩如生的动画
  • 鸿蒙开发 一 (三)、ArkTS开发实战上
  • TensorRT教程(1)初探TensorRT
  • 多表连接查询和子查询
  • 数据挖掘与机器学习——聚类算法
  • QT快速下载
  • 最短路问题
  • spark MLlib 中的分类模型
  • 24上半年报考人数“不增反降”?备考下半年软考的难了......
  • 初出茅庐的小李博客之使用立创开发板(ESP32)连接到EMQX Platform【MQTT TLS/SSL 端口连接】
  • js平滑滚动元素使其可见
  • TP6 事件绑定、监听、订阅
  • SpringCloud Gateway中Filters详细说明
  • 力扣2156.查找给定哈希值的子串
  • 推荐低成本低功耗的纯数字现场可重构IC
  • 解决change事件与blur事件互不影响
  • 后端开发面经系列 -- 同程旅行C++一面
  • 推荐几个开源的c#的工作流引擎组件
  • 视频汇聚EasyCVR视频监控云平台对接GA/T 1400视图库对象和对象集合XMLSchema描述
  • 【JavaScript脚本宇宙】瞬息万变:探索实时Web应用的JavaScript库
  • Java数据结构与算法(有向无环图)
  • QuanTA: 一种新的高秩高效微调范式
  • 【漏洞复现】用友NC downCourseWare 任意文件读取漏洞
  • 度安讲 | 第二期「安全左移·业务护航」技术沙龙成功举办
  • 代码片段 | Matlab三维图显示[ R T 0 1] 的最佳方法
  • 2024百度之星 跑步
  • 【git】TortoiseGitPlink Fatal Error 解决方法
  • 行心科技|中科利众:健康科技新合作,营养与科技融合前行