总览见 hc-tools
[TOC]
<!-- feign应用 -->
<dependency>
<groupId>cn.hc</groupId>
<artifactId>hc-tool-feign-trace-base</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
- 日志配置格式加上
%X{traceId}
,如:
// log4j2
<Property name="logPatternLayout">%d{yyyy-MM-dd HH:mm:ss.SSS} - %X{traceId} %X{PFTID} [%t] %-5level %logger{1.}:%L -%msg%n</Property>
<PatternLayout pattern="${logPatternLayout}"/>
// logback
<property name="logPatternLayout" value="%d{yyyy-MM-dd HH:mm:ss.SSS} - %X{traceId} %X{PFTID} [%t] %-5level %logger{1.}:%L -%msg%n"/>
<pattern>${logPatternLayout}</pattern>
- http请求
- 定时任务注解 @Scheduled
- Rocketmq Listener @RocketMQMessageListener
如果有重复配置,最上层配置生效
- 注解方式
// 支持 类、方法 维度
@cn.hc.tool.trace.aspect.HcTrace
- xml方式
<aop:config>
<aop:pointcut id="tracePointcut" expression="execution(* cn.hc..worker.**.*(..))
or execution(* cn.hc..listener.**.*(..))"/>
<aop:aspect ref="hcTraceAspect">
<aop:around method="xmlPoint" pointcut-ref="tracePointcut"/>
</aop:aspect>
</aop:config>
- 自定义切面表达式
hc:
trace:
# 按需添加:自定义切面表达式
pointcut: "@within(org.apache.rocketmq.spring.annotation.RocketMQMessageListener) || @annotation(org.springframework.scheduling.annotation.Scheduled)"
注:可提需求、可提需求、可提需求
httpClient
等请求,需自行在header
中添加traceId
,获取traceId
方式如下:
org.slf4j.MDC.get(HcTraceConst.TRACE_ID);