写了个牛逼的日志切面,甩锅更方便了( 三 )
<>();for (int i = 0; i < paramNames.length; i++) {Object value = http://kandian.youth.cn/index/paramValues[i];//如果是文件对象if (value instanceof MultipartFile) {MultipartFile file = (MultipartFile) value;value = file.getOriginalFilename();//获取文件名}requestParams.put(paramNames[i], value);}return requestParams;}@Datapublic class RequestInfo {private String ip;private String url;private String httpMethod;private String classMethod;private Object requestParams;private Object result;private Long timeCost;}@Datapublic class RequestErrorInfo {private String ip;private String url;private String httpMethod;private String classMethod;private Object requestParams;private RuntimeException exception;}}赶紧给你们的应用加上吧【如果没加的话】 , 没有日志的话 , 总怀疑上层出错 , 但是却拿不出证据
文章插图
关于 traceId 跟踪定位 , 可以根据 traceId 跟踪整条调用链 , 以 log4j2 为例介绍如何加入 traceId
- 添加拦截器
public class LogInterceptor implements HandlerInterceptor {private final static String TRACE_ID = "traceId";@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String traceId = java.util.UUID.randomUUID().toString().replaceAll("-", "").toUpperCase();ThreadContext.put("traceId", traceId);return true;}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)throws Exception {}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {ThreadContext. remove(TRACE_ID);}}
在调用前通过 ThreadContext 加入 traceId , 调用完成后移除- 修改日志配置文件 在原来的日志格式中添加 traceId 的占位符
[TRACEID:%X{traceId}] %d{HH:mm:ss.SSS} %-5level %class{-1}.%M()/%L - %msg%xEx%n
- 执行效果
文章插图
日志跟踪更方便
DMC 是配置 logback 和 log4j 使用的 , 使用方式和 ThreadContext 差不多 , 将 ThreadContext.put 替换为 MDC.put 即可 , 同时修改日志配置文件 。
log4j2 也是可以配合 MDC 一起使用的
文章插图
MDC 是 slf4j 包下的 , 其具体使用哪个日志框架与我们的依赖有关 。
- 震惊!京东T4大佬面试整整三个月,才写了两份java面试笔记
- 你只写了两行代码,为什么要花两天时间?
- 韩国人:逼迫中国自研芯片不妥当,光刻机离不开中国技术
- 荷兰职员:为何逼迫中国研发芯片?不知道光刻机少不了中国技术?
- 大屏逼死小屏!荣耀发布三个月中端机,不温不火的原因
- “女性机器人”为何备受喜爱?买家:触感好、逼真,还有3大功能
- 识别|这个人工智能工具可以生成逼真的人像来骗过面部识别
- 微信增加两项收费!发红包也要交钱,网友:逼着我用支付宝?
- 法国人:美国逗笑我了!光刻机离不开中国技术还逼他们自研芯片
- iPhone12蓝色真机曝光,果粉措手不及:逼着大家换华为?