欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

dubbo Trace 日志追踪

发布时间:2025/3/21 编程问答 36 豆豆
生活随笔 收集整理的这篇文章主要介绍了 dubbo Trace 日志追踪 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

为什么80%的码农都做不了架构师?>>>   

import com.alibaba.dubbo.common.Constants; import com.alibaba.dubbo.common.extension.Activate; import com.alibaba.dubbo.rpc.*; import com.bwton.ttsp.pay.common.util.TraceIDUtils; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import lombok.extern.slf4j.Slf4j; import org.slf4j.MDC;/*** TokenInvokerFilter** @author william.liangf*/ @Slf4j @Activate(group = {Constants.CONSUMER, Constants.PROVIDER}) public class TraceIDFilter implements Filter {private static final String TRACE_ID = "traceId";public static Gson getGson() {return new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();}@Overridepublic Result invoke(Invoker<?> invoker, Invocation invocation)throws RpcException { // if (invocation.getAttachment(TRACE_ID) != null) { // TraceIDUtils.setTraceId(invocation.getAttachment(TRACE_ID)); // String mdcData = invocation.getAttachment(TRACE_ID); // MDC.put(TRACE_ID, mdcData); // } else if (TraceIDUtils.getTraceId() != null) { // invocation.getAttachments().put(TRACE_ID, TraceIDUtils.getTraceId()); // }if (invocation.getAttachment(TRACE_ID) != null) {MDC.put(TRACE_ID, invocation.getAttachment(TRACE_ID));} else{String trace = (int)(Math.random()*9000+1000)+"";invocation.getAttachments().put(TRACE_ID, trace);MDC.put(TRACE_ID, trace);}return invoker.invoke(invocation);} }

 

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder"><!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符--><pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread][%X{traceId}] %-5level %logger - %msg%n</pattern></encoder></appender>

traceIdFilter=com.bwton.ttsp.pay.common.filter.TraceIDFilter

转载于:https://my.oschina.net/dyyweb/blog/2979259

总结

以上是生活随笔为你收集整理的dubbo Trace 日志追踪的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。