You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2017/02/27 19:52:41 UTC
cxf git commit: CXF-7129: Provide an optional HTrace Logging receiver,
prettified the default output and made the implementation Java 7 compatible.
Repository: cxf
Updated Branches:
refs/heads/3.1.x-fixes 194694aa3 -> b453109b0
CXF-7129: Provide an optional HTrace Logging receiver, prettified the default output and made the implementation Java 7 compatible.
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/b453109b
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/b453109b
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/b453109b
Branch: refs/heads/3.1.x-fixes
Commit: b453109b0033775f9e58b4105cabf2eefd10d900
Parents: 194694a
Author: reta <dr...@gmail.com>
Authored: Mon Feb 27 12:17:09 2017 -0500
Committer: reta <dr...@gmail.com>
Committed: Mon Feb 27 14:51:50 2017 -0500
----------------------------------------------------------------------
.../tracing/htrace/ext/LoggingSpanReceiver.java | 69 +++++++++++++-------
1 file changed, 46 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cxf/blob/b453109b/integration/tracing/tracing-htrace/src/main/java/org/apache/cxf/tracing/htrace/ext/LoggingSpanReceiver.java
----------------------------------------------------------------------
diff --git a/integration/tracing/tracing-htrace/src/main/java/org/apache/cxf/tracing/htrace/ext/LoggingSpanReceiver.java b/integration/tracing/tracing-htrace/src/main/java/org/apache/cxf/tracing/htrace/ext/LoggingSpanReceiver.java
index 5d5404d..2fdafd6 100644
--- a/integration/tracing/tracing-htrace/src/main/java/org/apache/cxf/tracing/htrace/ext/LoggingSpanReceiver.java
+++ b/integration/tracing/tracing-htrace/src/main/java/org/apache/cxf/tracing/htrace/ext/LoggingSpanReceiver.java
@@ -20,6 +20,9 @@
package org.apache.cxf.tracing.htrace.ext;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -41,9 +44,23 @@ public class LoggingSpanReceiver extends SpanReceiver {
public static final String LOG_LEVEL_INFO = Level.INFO.getName();
public static final String LOG_LEVEL_WARN = Level.WARNING.getName();
+ private interface Stringifier<T> {
+ String toString(T value);
+ }
+
private static final Logger LOG = LogUtils.getL7dLogger(LoggingSpanReceiver.class);
private final Level level;
+ private final Stringifier<TimelineAnnotation> timelineStringifier = new Stringifier<TimelineAnnotation>() {
+ @Override
+ public String toString(TimelineAnnotation annotation) {
+ final StringBuilder sb = new StringBuilder();
+ append(sb, "time", annotation.getTime());
+ append(sb, "message", annotation.getMessage(), true);
+ return "[" + sb.toString() + "]";
+ }
+ };
+
public LoggingSpanReceiver(HTraceConfiguration conf) {
level = Level.parse(conf.get(LOG_LEVEL_KEY, LOG_LEVEL_DEBUG));
}
@@ -57,6 +74,7 @@ public class LoggingSpanReceiver extends SpanReceiver {
public void close() throws IOException {
}
+
/**
* Sample log statements:
*
@@ -70,12 +88,6 @@ public class LoggingSpanReceiver extends SpanReceiver {
* description="GET http://localhost:8282/rest/api/people" parents=[] kvs=[] timelines=[]
*/
- private String toString(TimelineAnnotation annotation) {
- final StringBuilder sb = new StringBuilder();
- append(sb, "time", annotation.getTime());
- append(sb, "message", annotation.getMessage(), true);
- return sb.toString();
- }
private String toString(Span span) {
final StringBuilder sb = new StringBuilder();
@@ -103,12 +115,12 @@ public class LoggingSpanReceiver extends SpanReceiver {
append(sb, "parents", span.getParents());
append(sb, "kvs", span.getKVAnnotations());
- append(sb, "timelines", span.getTimelineAnnotations().toArray(), true);
+ append(sb, "timelines", span.getTimelineAnnotations(), timelineStringifier);
return sb.toString();
}
- private<T> void append(StringBuilder sb, String key, Map<String, String> values) {
+ private void append(StringBuilder sb, String key, Map<String, String> values) {
final StringBuilder inner = new StringBuilder();
for (final Map.Entry<String, String> entry : values.entrySet()) {
@@ -117,22 +129,13 @@ public class LoggingSpanReceiver extends SpanReceiver {
append(sb, key, inner.insert(0, "[").append("]").toString());
}
-
- private<T> void append(StringBuilder sb, String key, T[] values) {
- append(sb, key, values, false);
+
+ private<T> void append(StringBuilder sb, String key, Collection<T> values, Stringifier<T> stringifier) {
+ append(sb, key, toString(values, stringifier));
}
- private<T> void append(StringBuilder sb, String key, T[] values, boolean useBrackets) {
- final StringBuilder inner = new StringBuilder();
-
- for (T value : values) {
- String str = value.toString();
- if (useBrackets) {
- str = "[" + str + "]";
- }
- append(inner, quote(key), str, true);
- }
-
- append(sb, key, inner.insert(0, "[").append("]").toString());
+
+ private<T> void append(StringBuilder sb, String key, T[] values) {
+ append(sb, key, toString(values));
}
private void append(StringBuilder sb, String key, long value) {
@@ -158,6 +161,26 @@ public class LoggingSpanReceiver extends SpanReceiver {
return sb.toString();
}
+ private<T> String toString(Collection<T> values, Stringifier<T> stringifier) {
+ final Collection<String> converted = new ArrayList<>();
+
+ for (final T value: values) {
+ converted.add(stringifier.toString(value));
+ }
+
+ return Arrays.toString(converted.toArray());
+ }
+
+ private<T> String toString(T[] values) {
+ final Collection<String> converted = new ArrayList<>();
+
+ for (final T value: values) {
+ converted.add(value.toString());
+ }
+
+ return Arrays.toString(converted.toArray());
+ }
+
private void quote(StringBuilder sb, String value, boolean quoted) {
if (quoted) {
sb.append("\"");