From 2c90eb4eb709dc08d2ab263cc0298440d0481fc5 Mon Sep 17 00:00:00 2001 From: zhangxin10 Date: Thu, 31 Dec 2015 13:10:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90skywalking=E7=9A=84=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=8F=92=E4=BB=B6=E5=B9=B6=E4=B8=94=E6=8F=90=E4=BA=A4?= =?UTF-8?q?example=E5=B7=A5=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- skywalking-log/example/pom.xml | 50 +++++++++++++++++++ .../java/com/ai/cloud/log/test/TestA.java | 17 +++++++ .../java/com/ai/cloud/log/test/TestB.java | 13 +++++ .../src/test/resources/log4j.properties | 13 +++++ .../example/src/test/resources/log4j2.xml | 13 +++++ .../log4j/v1/x/TraceIdPatternConverter.java | 12 +++++ .../log/log4j/v1/x/TraceIdPatternLayout.java | 12 +++++ .../log/log4j/v1/x/TraceIdPatternParser.java | 21 ++++++++ .../log/log4j/v2/x/TraceIdConverter.java | 31 ++++++++++++ .../src/test/java/TestLog.java | 11 ++++ .../src/test/resources/log4j2.xml | 13 +++++ 11 files changed, 206 insertions(+) create mode 100644 skywalking-log/example/pom.xml create mode 100644 skywalking-log/example/src/test/java/com/ai/cloud/log/test/TestA.java create mode 100644 skywalking-log/example/src/test/java/com/ai/cloud/log/test/TestB.java create mode 100644 skywalking-log/example/src/test/resources/log4j.properties create mode 100644 skywalking-log/example/src/test/resources/log4j2.xml create mode 100644 skywalking-log/log4j-1.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v1/x/TraceIdPatternConverter.java create mode 100644 skywalking-log/log4j-1.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v1/x/TraceIdPatternLayout.java create mode 100644 skywalking-log/log4j-1.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v1/x/TraceIdPatternParser.java create mode 100644 skywalking-log/log4j-2.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v2/x/TraceIdConverter.java create mode 100644 skywalking-log/log4j-2.x-plugin/src/test/java/TestLog.java create mode 100644 skywalking-log/log4j-2.x-plugin/src/test/resources/log4j2.xml diff --git a/skywalking-log/example/pom.xml b/skywalking-log/example/pom.xml new file mode 100644 index 000000000..84929ab18 --- /dev/null +++ b/skywalking-log/example/pom.xml @@ -0,0 +1,50 @@ + + + skywalking-log + com.ai.cloud + 1.0-SNAPSHOT + + 4.0.0 + + example + jar + + example + http://maven.apache.org + + + UTF-8 + + + + + junit + junit + 3.8.1 + test + + + log4j + log4j + 1.2.17 + test + + + org.apache.logging.log4j + log4j-core + 2.4.1 + test + + + com.ai.cloud + skywalking-log4j-2.x-plugin + 1.0-SNAPSHOT + + + com.ai.cloud + skywalking-log4j-1.x-plugin + 1.0-SNAPSHOT + + + diff --git a/skywalking-log/example/src/test/java/com/ai/cloud/log/test/TestA.java b/skywalking-log/example/src/test/java/com/ai/cloud/log/test/TestA.java new file mode 100644 index 000000000..3253cd908 --- /dev/null +++ b/skywalking-log/example/src/test/java/com/ai/cloud/log/test/TestA.java @@ -0,0 +1,17 @@ +package com.ai.cloud.log.test; + +import org.apache.log4j.Logger; + +public class TestA { + + private Logger logger = Logger.getLogger(TestA.class); + + public void logHelloWorld() { + logger.info("Hello World"); + new TestB().log2jHelloWorld(); + } + + public static void main(String[] args) { + new TestA().logHelloWorld(); + } +} diff --git a/skywalking-log/example/src/test/java/com/ai/cloud/log/test/TestB.java b/skywalking-log/example/src/test/java/com/ai/cloud/log/test/TestB.java new file mode 100644 index 000000000..44e5d98bb --- /dev/null +++ b/skywalking-log/example/src/test/java/com/ai/cloud/log/test/TestB.java @@ -0,0 +1,13 @@ +package com.ai.cloud.log.test; + + +import org.apache.logging.log4j.LogManager; + +public class TestB { + + private org.apache.logging.log4j.Logger logger = LogManager.getLogger(TestB.class); + + public void log2jHelloWorld() { + logger.info("{}", "Hello World"); + } +} diff --git a/skywalking-log/example/src/test/resources/log4j.properties b/skywalking-log/example/src/test/resources/log4j.properties new file mode 100644 index 000000000..72a571f68 --- /dev/null +++ b/skywalking-log/example/src/test/resources/log4j.properties @@ -0,0 +1,13 @@ +log4j.rootLogger=INFO, A1 +#log4j.appender.A1=org.apache.log4j.FileAppender +#log4j.appender.A1.File=${catalina.base}/logs/mvno_crm_all.log +#log4j.appender.A1.layout=org.apache.log4j.PatternLayout +#log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss.SSS} %c %n[%p] %n%m%n + +log4j.appender.A1=org.apache.log4j.ConsoleAppender +#log4j.appender.A1.layout=org.apache.log4j.PatternLayout +log4j.appender.A1.layout=com.ai.cloud.skywalking.plugin.log.log4j.v1.x.TraceIdPatternLayout +log4j.appender.A1.layout.ConversionPattern=[%x] %-d{yyyy-MM-dd HH:mm:ss.SSS} %c %n[%p] %n%m%n + +log4j.logger.com.ailk=DEBUG +log4j.logger.org.springframework=DEBUG \ No newline at end of file diff --git a/skywalking-log/example/src/test/resources/log4j2.xml b/skywalking-log/example/src/test/resources/log4j2.xml new file mode 100644 index 000000000..dc21be6ff --- /dev/null +++ b/skywalking-log/example/src/test/resources/log4j2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/skywalking-log/log4j-1.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v1/x/TraceIdPatternConverter.java b/skywalking-log/log4j-1.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v1/x/TraceIdPatternConverter.java new file mode 100644 index 000000000..addb26893 --- /dev/null +++ b/skywalking-log/log4j-1.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v1/x/TraceIdPatternConverter.java @@ -0,0 +1,12 @@ +package com.ai.cloud.skywalking.plugin.log.log4j.v1.x; + +import com.ai.cloud.skywalking.api.Tracing; +import org.apache.log4j.helpers.PatternConverter; +import org.apache.log4j.spi.LoggingEvent; + +public class TraceIdPatternConverter extends PatternConverter { + @Override + protected String convert(LoggingEvent loggingEvent) { + return "TID:" + Tracing.getTraceId(); + } +} diff --git a/skywalking-log/log4j-1.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v1/x/TraceIdPatternLayout.java b/skywalking-log/log4j-1.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v1/x/TraceIdPatternLayout.java new file mode 100644 index 000000000..89e226b76 --- /dev/null +++ b/skywalking-log/log4j-1.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v1/x/TraceIdPatternLayout.java @@ -0,0 +1,12 @@ +package com.ai.cloud.skywalking.plugin.log.log4j.v1.x; + + +import org.apache.log4j.PatternLayout; +import org.apache.log4j.helpers.PatternParser; + +public class TraceIdPatternLayout extends PatternLayout { + @Override + protected PatternParser createPatternParser(String pattern) { + return new TraceIdPatternParser(pattern); + } +} diff --git a/skywalking-log/log4j-1.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v1/x/TraceIdPatternParser.java b/skywalking-log/log4j-1.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v1/x/TraceIdPatternParser.java new file mode 100644 index 000000000..d9141a58b --- /dev/null +++ b/skywalking-log/log4j-1.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v1/x/TraceIdPatternParser.java @@ -0,0 +1,21 @@ +package com.ai.cloud.skywalking.plugin.log.log4j.v1.x; + +import org.apache.log4j.helpers.PatternParser; + +/** + * Created by astraea on 2015/12/31. + */ +public class TraceIdPatternParser extends PatternParser { + public TraceIdPatternParser(String pattern) { + super(pattern); + } + + @Override + protected void finalizeConverter(char c) { + if ('x' == c) { + addConverter(new TraceIdPatternConverter()); + } else { + super.finalizeConverter(c); + } + } +} diff --git a/skywalking-log/log4j-2.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v2/x/TraceIdConverter.java b/skywalking-log/log4j-2.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v2/x/TraceIdConverter.java new file mode 100644 index 000000000..5b0254fae --- /dev/null +++ b/skywalking-log/log4j-2.x-plugin/src/main/java/com/ai/cloud/skywalking/plugin/log/log4j/v2/x/TraceIdConverter.java @@ -0,0 +1,31 @@ +package com.ai.cloud.skywalking.plugin.log.log4j.v2.x; + +import com.ai.cloud.skywalking.api.Tracing; +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; + +@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:" + Tracing.getTraceId()); + } +} diff --git a/skywalking-log/log4j-2.x-plugin/src/test/java/TestLog.java b/skywalking-log/log4j-2.x-plugin/src/test/java/TestLog.java new file mode 100644 index 000000000..9cc5c4781 --- /dev/null +++ b/skywalking-log/log4j-2.x-plugin/src/test/java/TestLog.java @@ -0,0 +1,11 @@ +import org.apache.logging.log4j.LogManager; + +/** + * Created by astraea on 2015/12/31. + */ +public class TestLog { + public static void main(String[] args) { + org.apache.logging.log4j.Logger logger = LogManager.getLogger(TestLog.class); + logger.info("{}","Hello World"); + } +} diff --git a/skywalking-log/log4j-2.x-plugin/src/test/resources/log4j2.xml b/skywalking-log/log4j-2.x-plugin/src/test/resources/log4j2.xml new file mode 100644 index 000000000..dc21be6ff --- /dev/null +++ b/skywalking-log/log4j-2.x-plugin/src/test/resources/log4j2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file -- GitLab