diff --git a/skywalking-application-toolkit/pom.xml b/skywalking-application-toolkit/pom.xml
index 356d967bb..55de4c703 100644
--- a/skywalking-application-toolkit/pom.xml
+++ b/skywalking-application-toolkit/pom.xml
@@ -15,5 +15,7 @@
skywalking-toolkit-log4j-1.x
+ skywalking-toolkit-log4j-2.x
+ skywalking-toolkit-logback-1.x
diff --git a/skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/plugin/log/log4j/v1/x/TraceIdPatternConverter.java b/skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/toolkit/log/log4j/v1/x/TraceIdPatternConverter.java
similarity index 85%
rename from skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/plugin/log/log4j/v1/x/TraceIdPatternConverter.java
rename to skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/toolkit/log/log4j/v1/x/TraceIdPatternConverter.java
index bccbd64ed..6e60e958d 100644
--- a/skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/plugin/log/log4j/v1/x/TraceIdPatternConverter.java
+++ b/skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/toolkit/log/log4j/v1/x/TraceIdPatternConverter.java
@@ -1,4 +1,4 @@
-package com.a.eye.skywalking.plugin.log.log4j.v1.x;
+package com.a.eye.skywalking.toolkit.log.log4j.v1.x;
import org.apache.log4j.helpers.PatternConverter;
import org.apache.log4j.spi.LoggingEvent;
diff --git a/skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/plugin/log/log4j/v1/x/TraceIdPatternLayout.java b/skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/toolkit/log/log4j/v1/x/TraceIdPatternLayout.java
similarity index 86%
rename from skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/plugin/log/log4j/v1/x/TraceIdPatternLayout.java
rename to skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/toolkit/log/log4j/v1/x/TraceIdPatternLayout.java
index 2d38762f5..806337228 100644
--- a/skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/plugin/log/log4j/v1/x/TraceIdPatternLayout.java
+++ b/skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/toolkit/log/log4j/v1/x/TraceIdPatternLayout.java
@@ -1,4 +1,4 @@
-package com.a.eye.skywalking.plugin.log.log4j.v1.x;
+package com.a.eye.skywalking.toolkit.log.log4j.v1.x;
import org.apache.log4j.PatternLayout;
diff --git a/skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/plugin/log/log4j/v1/x/TraceIdPatternParser.java b/skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/toolkit/log/log4j/v1/x/TraceIdPatternParser.java
similarity index 89%
rename from skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/plugin/log/log4j/v1/x/TraceIdPatternParser.java
rename to skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/toolkit/log/log4j/v1/x/TraceIdPatternParser.java
index 58b7a083d..19c855008 100644
--- a/skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/plugin/log/log4j/v1/x/TraceIdPatternParser.java
+++ b/skywalking-application-toolkit/skywalking-toolkit-log4j-1.x/src/main/java/com/a/eye/skywalking/toolkit/log/log4j/v1/x/TraceIdPatternParser.java
@@ -1,4 +1,4 @@
-package com.a.eye.skywalking.plugin.log.log4j.v1.x;
+package com.a.eye.skywalking.toolkit.log.log4j.v1.x;
import org.apache.log4j.helpers.PatternParser;
diff --git a/skywalking-application-toolkit/skywalking-toolkit-log4j-2.x/pom.xml b/skywalking-application-toolkit/skywalking-toolkit-log4j-2.x/pom.xml
new file mode 100644
index 000000000..4e9a90090
--- /dev/null
+++ b/skywalking-application-toolkit/skywalking-toolkit-log4j-2.x/pom.xml
@@ -0,0 +1,22 @@
+
+
+
+ skywalking-application-toolkit
+ com.a.eye
+ 2.0-2016
+
+ 4.0.0
+
+ skywalking-toolkit-log4j-2.x
+
+
+
+ org.apache.logging.log4j
+ log4j-core
+ 2.7
+ compile
+
+
+
diff --git a/skywalking-application-toolkit/skywalking-toolkit-log4j-2.x/src/main/java/com/a/eye/skywalking/toolkit/log4j/v2/x/TraceIdConverter.java b/skywalking-application-toolkit/skywalking-toolkit-log4j-2.x/src/main/java/com/a/eye/skywalking/toolkit/log4j/v2/x/TraceIdConverter.java
new file mode 100644
index 000000000..f01726bc0
--- /dev/null
+++ b/skywalking-application-toolkit/skywalking-toolkit-log4j-2.x/src/main/java/com/a/eye/skywalking/toolkit/log4j/v2/x/TraceIdConverter.java
@@ -0,0 +1,34 @@
+package com.a.eye.skywalking.toolkit.log4j.v2.x;
+
+
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.core.pattern.ConverterKeys;
+import org.apache.logging.log4j.core.pattern.LogEventPatternConverter;
+
+/**
+ * Created by wusheng on 2016/12/7.
+ */
+@Plugin(name = "TraceIdConverter", category = "Converter")
+@ConverterKeys({"tid"})
+public class TraceIdConverter extends LogEventPatternConverter {
+
+ /**
+ * Constructs an instance of LoggingEventPatternConverter.
+ *
+ * @param name name of converter.
+ * @param style CSS style for output.
+ */
+ protected TraceIdConverter(String name, String style) {
+ super(name, style);
+ }
+
+ public static TraceIdConverter newInstance(String[] options) {
+ return new TraceIdConverter("tid", "tid");
+ }
+
+ @Override
+ public void format(LogEvent event, StringBuilder toAppendTo) {
+ toAppendTo.append("TID: N/A");
+ }
+}
diff --git a/skywalking-application-toolkit/skywalking-toolkit-logback-1.x/pom.xml b/skywalking-application-toolkit/skywalking-toolkit-logback-1.x/pom.xml
new file mode 100644
index 000000000..0b7511667
--- /dev/null
+++ b/skywalking-application-toolkit/skywalking-toolkit-logback-1.x/pom.xml
@@ -0,0 +1,21 @@
+
+
+
+ skywalking-application-toolkit
+ com.a.eye
+ 2.0-2016
+
+ 4.0.0
+
+ skywalking-toolkit-logback-1.x
+
+
+
+ ch.qos.logback
+ logback-classic
+ 1.1.7
+
+
+
diff --git a/skywalking-application-toolkit/skywalking-toolkit-logback-1.x/src/main/java/com/a/eye/skywalking/toolkit/logback/v1/x/LogbackPatternConverter.java b/skywalking-application-toolkit/skywalking-toolkit-logback-1.x/src/main/java/com/a/eye/skywalking/toolkit/logback/v1/x/LogbackPatternConverter.java
new file mode 100644
index 000000000..43c6c7a61
--- /dev/null
+++ b/skywalking-application-toolkit/skywalking-toolkit-logback-1.x/src/main/java/com/a/eye/skywalking/toolkit/logback/v1/x/LogbackPatternConverter.java
@@ -0,0 +1,14 @@
+package com.a.eye.skywalking.toolkit.logback.v1.x;
+
+import ch.qos.logback.classic.pattern.ClassicConverter;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+
+/**
+ * Created by wusheng on 2016/12/7.
+ */
+public class LogbackPatternConverter extends ClassicConverter {
+ @Override
+ public String convert(ILoggingEvent iLoggingEvent) {
+ return "TID: N/A";
+ }
+}
diff --git a/skywalking-application-toolkit/skywalking-toolkit-logback-1.x/src/main/java/com/a/eye/skywalking/toolkit/logback/v1/x/TraceIdPatternLogbackLayout.java b/skywalking-application-toolkit/skywalking-toolkit-logback-1.x/src/main/java/com/a/eye/skywalking/toolkit/logback/v1/x/TraceIdPatternLogbackLayout.java
new file mode 100644
index 000000000..f2c8256d4
--- /dev/null
+++ b/skywalking-application-toolkit/skywalking-toolkit-logback-1.x/src/main/java/com/a/eye/skywalking/toolkit/logback/v1/x/TraceIdPatternLogbackLayout.java
@@ -0,0 +1,12 @@
+package com.a.eye.skywalking.toolkit.logback.v1.x;
+
+import ch.qos.logback.classic.PatternLayout;
+
+/**
+ * Created by wusheng on 2016/12/7.
+ */
+public class TraceIdPatternLogbackLayout extends PatternLayout {
+ static {
+ defaultConverterMap.put("tid", LogbackPatternConverter.class.getName());
+ }
+}
diff --git a/skywalking-sniffer/skywalking-agent/pom.xml b/skywalking-sniffer/skywalking-agent/pom.xml
index 67b424178..a2e8d21e1 100644
--- a/skywalking-sniffer/skywalking-agent/pom.xml
+++ b/skywalking-sniffer/skywalking-agent/pom.xml
@@ -64,6 +64,11 @@
skywalking-toolkit-log4j-1.x-activation
${project.version}
+
+ com.a.eye
+ skywalking-toolkit-log4j-2.x-activation
+ ${project.version}
+
${artifactId}
diff --git a/skywalking-sniffer/skywalking-toolkit-activation/pom.xml b/skywalking-sniffer/skywalking-toolkit-activation/pom.xml
index 92f8471e7..da93085a9 100644
--- a/skywalking-sniffer/skywalking-toolkit-activation/pom.xml
+++ b/skywalking-sniffer/skywalking-toolkit-activation/pom.xml
@@ -11,6 +11,8 @@
pom
skywalking-toolkit-log4j-1.x-activation
+ skywalking-toolkit-log4j-2.x-activation
+ skywalking-toolkit-logback-1.x-activation
skywalking-toolkit-activation
diff --git a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v1/x/TraceIdPatternConverterActivation.java b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v1/x/TraceIdPatternConverterActivation.java
index 865f68899..7014b15df 100644
--- a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v1/x/TraceIdPatternConverterActivation.java
+++ b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v1/x/TraceIdPatternConverterActivation.java
@@ -12,7 +12,7 @@ import com.a.eye.skywalking.plugin.interceptor.matcher.SimpleMethodMatcher;
public class TraceIdPatternConverterActivation extends ClassInstanceMethodsEnhancePluginDefine {
@Override
protected String enhanceClassName() {
- return "com.a.eye.skywalking.plugin.log.log4j.v1.x.TraceIdPatternConverter";
+ return "com.a.eye.skywalking.toolkit.log.log4j.v1.x.TraceIdPatternConverter";
}
@Override
diff --git a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/pom.xml b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/pom.xml
new file mode 100644
index 000000000..4cabad547
--- /dev/null
+++ b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/pom.xml
@@ -0,0 +1,15 @@
+
+
+
+ skywalking-toolkit-activation
+ com.a.eye
+ 2.0-2016
+
+ 4.0.0
+
+ skywalking-toolkit-log4j-2.x-activation
+
+
+
diff --git a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v2/x/PrintTraceIdInterceptor.java b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v2/x/PrintTraceIdInterceptor.java
new file mode 100644
index 000000000..3aee17f0b
--- /dev/null
+++ b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v2/x/PrintTraceIdInterceptor.java
@@ -0,0 +1,30 @@
+package com.a.eye.skywalking.toolkit.activation.log4j.v2.x;
+
+import com.a.eye.skywalking.api.Tracing;
+import com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext;
+import com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext;
+import com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor;
+import com.a.eye.skywalking.plugin.interceptor.enhance.MethodInterceptResult;
+
+/**
+ * Created by wusheng on 2016/12/7.
+ */
+public class PrintTraceIdInterceptor implements InstanceMethodsAroundInterceptor {
+ @Override
+ public void beforeMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, MethodInterceptResult result) {
+ ((StringBuilder)interceptorContext.allArguments()[1]).append("TID:" + Tracing.getTraceId());
+
+ //make sure origin method do not invoke.
+ result.defineReturnValue(null);
+ }
+
+ @Override
+ public Object afterMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, Object ret) {
+ return ret;
+ }
+
+ @Override
+ public void handleMethodException(Throwable t, EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext) {
+
+ }
+}
diff --git a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v2/x/TraceIdConverterActivation.java b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v2/x/TraceIdConverterActivation.java
new file mode 100644
index 000000000..233ae4f4a
--- /dev/null
+++ b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/log4j/v2/x/TraceIdConverterActivation.java
@@ -0,0 +1,37 @@
+package com.a.eye.skywalking.toolkit.activation.log4j.v2.x;
+
+import com.a.eye.skywalking.plugin.interceptor.ConstructorInterceptPoint;
+import com.a.eye.skywalking.plugin.interceptor.InstanceMethodsInterceptPoint;
+import com.a.eye.skywalking.plugin.interceptor.MethodMatcher;
+import com.a.eye.skywalking.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine;
+import com.a.eye.skywalking.plugin.interceptor.matcher.SimpleMethodMatcher;
+
+/**
+ * Created by wusheng on 2016/12/7.
+ */
+public class TraceIdConverterActivation extends ClassInstanceMethodsEnhancePluginDefine {
+ @Override
+ protected String enhanceClassName() {
+ return "com.a.eye.skywalking.toolkit.log4j.v2.x.TraceIdConverter";
+ }
+
+ @Override
+ protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() {
+ return null;
+ }
+
+ @Override
+ protected InstanceMethodsInterceptPoint[] getInstanceMethodsInterceptPoints() {
+ return new InstanceMethodsInterceptPoint[]{new InstanceMethodsInterceptPoint() {
+ @Override
+ public MethodMatcher[] getMethodsMatchers() {
+ return new MethodMatcher[]{new SimpleMethodMatcher("format")};
+ }
+
+ @Override
+ public String getMethodsInterceptor() {
+ return "com.a.eye.skywalking.toolkit.activation.log4j.v2.x.PrintTraceIdInterceptor";
+ }
+ }};
+ }
+}
diff --git a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/resources/skywalking-plugin.def b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/resources/skywalking-plugin.def
new file mode 100644
index 000000000..bba23263e
--- /dev/null
+++ b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-log4j-2.x-activation/src/main/resources/skywalking-plugin.def
@@ -0,0 +1 @@
+com.a.eye.skywalking.toolkit.activation.log4j.v2.x.TraceIdConverterActivation
diff --git a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/pom.xml b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/pom.xml
new file mode 100644
index 000000000..d3f815723
--- /dev/null
+++ b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/pom.xml
@@ -0,0 +1,15 @@
+
+
+
+ skywalking-toolkit-activation
+ com.a.eye
+ 2.0-2016
+
+ 4.0.0
+
+ skywalking-toolkit-logback-1.x-activation
+
+
+
diff --git a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/logback/v1/x/LogbackPatternConverterActivation.java b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/logback/v1/x/LogbackPatternConverterActivation.java
new file mode 100644
index 000000000..5caf21cd8
--- /dev/null
+++ b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/logback/v1/x/LogbackPatternConverterActivation.java
@@ -0,0 +1,37 @@
+package com.a.eye.skywalking.toolkit.activation.logback.v1.x;
+
+import com.a.eye.skywalking.plugin.interceptor.ConstructorInterceptPoint;
+import com.a.eye.skywalking.plugin.interceptor.InstanceMethodsInterceptPoint;
+import com.a.eye.skywalking.plugin.interceptor.MethodMatcher;
+import com.a.eye.skywalking.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine;
+import com.a.eye.skywalking.plugin.interceptor.matcher.SimpleMethodMatcher;
+
+/**
+ * Created by wusheng on 2016/12/7.
+ */
+public class LogbackPatternConverterActivation extends ClassInstanceMethodsEnhancePluginDefine {
+ @Override
+ protected String enhanceClassName() {
+ return "com.a.eye.skywalking.toolkit.logback.v1.x.LogbackPatternConverter";
+ }
+
+ @Override
+ protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() {
+ return null;
+ }
+
+ @Override
+ protected InstanceMethodsInterceptPoint[] getInstanceMethodsInterceptPoints() {
+ return new InstanceMethodsInterceptPoint[]{new InstanceMethodsInterceptPoint() {
+ @Override
+ public MethodMatcher[] getMethodsMatchers() {
+ return new MethodMatcher[]{new SimpleMethodMatcher("convert")};
+ }
+
+ @Override
+ public String getMethodsInterceptor() {
+ return "com.a.eye.skywalking.toolkit.activation.logback.v1.x.PrintTraceIdInterceptor";
+ }
+ }};
+ }
+}
diff --git a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/logback/v1/x/PrintTraceIdInterceptor.java b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/logback/v1/x/PrintTraceIdInterceptor.java
new file mode 100644
index 000000000..b7f28d0cd
--- /dev/null
+++ b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/java/com/a/eye/skywalking/toolkit/activation/logback/v1/x/PrintTraceIdInterceptor.java
@@ -0,0 +1,27 @@
+package com.a.eye.skywalking.toolkit.activation.logback.v1.x;
+
+import com.a.eye.skywalking.api.Tracing;
+import com.a.eye.skywalking.plugin.interceptor.EnhancedClassInstanceContext;
+import com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodInvokeContext;
+import com.a.eye.skywalking.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor;
+import com.a.eye.skywalking.plugin.interceptor.enhance.MethodInterceptResult;
+
+/**
+ * Created by wusheng on 2016/12/7.
+ */
+public class PrintTraceIdInterceptor implements InstanceMethodsAroundInterceptor {
+ @Override
+ public void beforeMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, MethodInterceptResult result) {
+
+ }
+
+ @Override
+ public Object afterMethod(EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext, Object ret) {
+ return "TID:" + Tracing.getTraceId();
+ }
+
+ @Override
+ public void handleMethodException(Throwable t, EnhancedClassInstanceContext context, InstanceMethodInvokeContext interceptorContext) {
+
+ }
+}
diff --git a/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/resources/skywalking-plugin.def b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/resources/skywalking-plugin.def
new file mode 100644
index 000000000..8262dd342
--- /dev/null
+++ b/skywalking-sniffer/skywalking-toolkit-activation/skywalking-toolkit-logback-1.x-activation/src/main/resources/skywalking-plugin.def
@@ -0,0 +1 @@
+com.a.eye.skywalking.toolkit.activation.logback.v1.x.LogbackPatternConverterActivation