编辑 ApiOperationLogAspect
日志切面类,在 doAround()
方法中处理请求开始的时候, 将请求的跟踪标识放入MDC 中:
// traceId 表示跟踪 ID, 值这里直接用的 UUID
MDC.put("traceId", UUID.randomUUID().toString());
在自定义注解,实现 API 请求日志切面中的代码已经添加了。
在请求结束时,为了避免污染其他请求,还需要清除 MDC 中的值:
finally {
MDC.clear();
}
在 logback-weblog.xml
配置文件中,可以使用 %X
来引用MDC中的值。例如,要引用上述的 traceId
,你可以这样配置:
<property name="FILE_LOG_PATTERN" value="[TraceId: %X{traceId}] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/>
并且设置只有生产环境 prod 时才会添加该日志,我们还使用之前的日志配置,然后暂时修改一下file的存放地址来看看能不能生效。
<property name="LOG_FILE" value="D:\\IDEA_Projects\\weblog\\logs\\${appName}.%d{yyyy-MM-dd}"/>