diff --git a/lab-39/lab-39-logback/pom.xml b/lab-39/lab-39-logback/pom.xml
index 6f3f4914..56d887e6 100644
--- a/lab-39/lab-39-logback/pom.xml
+++ b/lab-39/lab-39-logback/pom.xml
@@ -14,6 +14,7 @@
lab-39-logback
+
org.apache.skywalking
apm-toolkit-logback-1.x
diff --git a/lab-39/lab-39-logback/src/main/resources/logback-spring.xml b/lab-39/lab-39-logback/src/main/resources/logback-spring.xml
index 268ef241..ea96023e 100644
--- a/lab-39/lab-39-logback/src/main/resources/logback-spring.xml
+++ b/lab-39/lab-39-logback/src/main/resources/logback-spring.xml
@@ -6,12 +6,12 @@
-
+
- ${CONSOLE_LOG_X_PATTERN}
+ ${CONSOLE_LOG_PATTERN}
@@ -31,9 +31,10 @@
10MB
-
- ${FILE_LOG_PATTERN}
- utf8
+
+
+ ${FILE_LOG_PATTERN}
+
diff --git a/lab-39/lab-39-trace-annotations/pom.xml b/lab-39/lab-39-trace-annotations/pom.xml
new file mode 100644
index 00000000..a3ca1e63
--- /dev/null
+++ b/lab-39/lab-39-trace-annotations/pom.xml
@@ -0,0 +1,31 @@
+
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.2.2.RELEASE
+
+
+ 4.0.0
+ jar
+
+ lab-39-trace-annotations
+
+
+
+
+ org.apache.skywalking
+ apm-toolkit-trace
+ 6.6.0
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
diff --git a/lab-39/lab-39-trace-annotations/src/main/java/cn/iocoder/springboot/lab39/skywalkingdemo/TraceAnnotationsApplication.java b/lab-39/lab-39-trace-annotations/src/main/java/cn/iocoder/springboot/lab39/skywalkingdemo/TraceAnnotationsApplication.java
new file mode 100644
index 00000000..7a07bc97
--- /dev/null
+++ b/lab-39/lab-39-trace-annotations/src/main/java/cn/iocoder/springboot/lab39/skywalkingdemo/TraceAnnotationsApplication.java
@@ -0,0 +1,13 @@
+package cn.iocoder.springboot.lab39.skywalkingdemo;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class TraceAnnotationsApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(TraceAnnotationsApplication.class, args);
+ }
+
+}
diff --git a/lab-39/lab-39-trace-annotations/src/main/java/cn/iocoder/springboot/lab39/skywalkingdemo/controller/DemoController.java b/lab-39/lab-39-trace-annotations/src/main/java/cn/iocoder/springboot/lab39/skywalkingdemo/controller/DemoController.java
new file mode 100644
index 00000000..5beb0309
--- /dev/null
+++ b/lab-39/lab-39-trace-annotations/src/main/java/cn/iocoder/springboot/lab39/skywalkingdemo/controller/DemoController.java
@@ -0,0 +1,23 @@
+package cn.iocoder.springboot.lab39.skywalkingdemo.controller;
+
+import org.apache.skywalking.apm.toolkit.trace.ActiveSpan;
+import org.apache.skywalking.apm.toolkit.trace.Trace;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/demo")
+public class DemoController {
+
+ @GetMapping("/trace_annotations")
+ @Trace(operationName = "trace_annotations")
+ public String echo() {
+ // 自定义 SkyWalking Span
+ ActiveSpan.tag("mp", "芋道源码");
+
+ // 返回
+ return "trace_annotations";
+ }
+
+}
diff --git a/lab-39/lab-39-trace-annotations/src/main/resources/application.yml b/lab-39/lab-39-trace-annotations/src/main/resources/application.yml
new file mode 100644
index 00000000..396333f0
--- /dev/null
+++ b/lab-39/lab-39-trace-annotations/src/main/resources/application.yml
@@ -0,0 +1,2 @@
+server:
+ port: 8079
diff --git a/lab-39/pom.xml b/lab-39/pom.xml
index d1590612..04289e50 100644
--- a/lab-39/pom.xml
+++ b/lab-39/pom.xml
@@ -24,6 +24,7 @@
lab-39-rabbitmq-demo
lab-39-activemq
lab-39-logback
+ lab-39-trace-annotations