diff --git a/src/main/java/com/laker/admin/framework/aop/trace/Span.java b/src/main/java/com/laker/admin/framework/aop/trace/Span.java index e02702980cba1b2f3de14b9681e459821f970c73..5ed280d9c472b1ab41aec07cca05ea487af4c0fb 100644 --- a/src/main/java/com/laker/admin/framework/aop/trace/Span.java +++ b/src/main/java/com/laker/admin/framework/aop/trace/Span.java @@ -24,5 +24,6 @@ public class Span { private int level = 0; private int levelDeep = 0; private boolean max; + private Span parent; private List childs = new ArrayList<>(); } diff --git a/src/main/java/com/laker/admin/framework/aop/trace/Trace.java b/src/main/java/com/laker/admin/framework/aop/trace/Trace.java index e8776bbaad1cb01dec3abc5ecbf02e9d872f4f61..e88b7ab2e1d1476501dac599db5e420e873285e1 100644 --- a/src/main/java/com/laker/admin/framework/aop/trace/Trace.java +++ b/src/main/java/com/laker/admin/framework/aop/trace/Trace.java @@ -57,6 +57,7 @@ public class Trace { span.setLevel(latest.getLevel() + 1); span.setLevelDeep(latest.getChilds().size() + 1); // 添加进其 子span列表 + span.setParent(latest); latest.getChilds().add(span); } // 入栈 @@ -110,8 +111,10 @@ public class Trace { } spans.sort(Comparator.comparing(Span::getOrder)); spans.stream().filter(span -> span.getLevel() != 0).max(Comparator.comparing(Span::getCost)).ifPresent(span -> span.setMax(true)); + int i = 1; for (Span span : spans) { - log.warn("{} {}{}{}ms{}:[{}]-{}", span.getLevel() + "." + span.getLevelDeep(), append + BAR, span.isMax() ? "【" : "[", span.getCost(), span.isMax() ? "】" : "]", span.getSpanType(), span.getId()); + span.setName(span.getParent() == null ? "root" : span.getParent().getName() + "." + (i++) + ""); + log.warn("{} {}{}{}ms{}:[{}]-{}", span.getName(), append + BAR, span.isMax() ? "【" : "[", span.getCost(), span.isMax() ? "】" : "]", span.getSpanType(), span.getId()); logSpan(span.getChilds(), append + BAR); } }