From 7deb9aff7b69efea73d49006ffdd478bdb17655f Mon Sep 17 00:00:00 2001 From: Spencer Gibb Date: Fri, 7 Aug 2015 11:16:15 -0600 Subject: [PATCH] Polish logging listeners. Rename slf4j package to log. Shorten enabled properties. JsonLogSpanListener only depends on Commons Logging. --- .../JsonLogSpanListener.java} | 15 +++++----- .../SleuthLogAutoConfiguration.java} | 30 ++++++++++++------- .../{slf4j => log}/Slf4jSpanListener.java | 2 +- .../main/resources/META-INF/spring.factories | 2 +- .../JsonLogSpanListenerTests.java} | 6 ++-- 5 files changed, 31 insertions(+), 24 deletions(-) rename spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/{slf4j/JsonSlf4jSpanListener.java => log/JsonLogSpanListener.java} (85%) rename spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/{slf4j/SleuthSlf4jAutoConfiguration.java => log/SleuthLogAutoConfiguration.java} (58%) rename spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/{slf4j => log}/Slf4jSpanListener.java (97%) rename spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/{slf4j/JsonSlf4jSpanListenerTests.java => log/JsonLogSpanListenerTests.java} (93%) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/slf4j/JsonSlf4jSpanListener.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/JsonLogSpanListener.java similarity index 85% rename from spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/slf4j/JsonSlf4jSpanListener.java rename to spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/JsonLogSpanListener.java index d0eed77c1..efc0a32e7 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/slf4j/JsonSlf4jSpanListener.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/JsonLogSpanListener.java @@ -14,33 +14,33 @@ * limitations under the License. */ -package org.springframework.cloud.sleuth.slf4j; +package org.springframework.cloud.sleuth.log; -import com.fasterxml.jackson.databind.DeserializationFeature; import lombok.Data; import lombok.SneakyThrows; -import lombok.extern.slf4j.Slf4j; +import lombok.extern.apachecommons.CommonsLog; import org.springframework.cloud.sleuth.event.SpanStoppedEvent; import org.springframework.context.event.EventListener; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; /** * @author Spencer Gibb */ -@Slf4j +@CommonsLog @Order(Ordered.LOWEST_PRECEDENCE) @Data -public class JsonSlf4jSpanListener { +public class JsonLogSpanListener { private final String prefix; private final String suffix; private final ObjectMapper objectMapper = new ObjectMapper(); - public JsonSlf4jSpanListener() { + public JsonLogSpanListener() { prefix = "[span]"; suffix = "[endspan]"; objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); @@ -49,8 +49,7 @@ public class JsonSlf4jSpanListener { @SneakyThrows @EventListener(SpanStoppedEvent.class) public void stop(SpanStoppedEvent event) { - log.info("{}{}{}", prefix, - objectMapper.writeValueAsString(event.getSpan()), + log.info(prefix + objectMapper.writeValueAsString(event.getSpan()) + suffix); } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/slf4j/SleuthSlf4jAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/SleuthLogAutoConfiguration.java similarity index 58% rename from spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/slf4j/SleuthSlf4jAutoConfiguration.java rename to spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/SleuthLogAutoConfiguration.java index f3145c8a8..b4a17a3ba 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/slf4j/SleuthSlf4jAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/SleuthLogAutoConfiguration.java @@ -14,8 +14,9 @@ * limitations under the License. */ -package org.springframework.cloud.sleuth.slf4j; +package org.springframework.cloud.sleuth.log; +import org.apache.commons.logging.Log; import org.slf4j.MDC; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -26,19 +27,26 @@ import org.springframework.context.annotation.Configuration; * @author Spencer Gibb */ @Configuration -@ConditionalOnClass(MDC.class) -public class SleuthSlf4jAutoConfiguration { +public class SleuthLogAutoConfiguration { - @Bean - @ConditionalOnProperty(value = "spring.cloud.sleuth.listener.slf4j.enabled", matchIfMissing = true) - public Slf4jSpanListener slf4jSpanStartedListener() { - return new Slf4jSpanListener(); + @Configuration + @ConditionalOnClass(MDC.class) + protected static class Slf4jConfiguration { + @Bean + @ConditionalOnProperty(value = "spring.cloud.sleuth.log.slf4j.enabled", matchIfMissing = true) + public Slf4jSpanListener slf4jSpanStartedListener() { + return new Slf4jSpanListener(); + } } - @Bean - @ConditionalOnProperty("spring.cloud.sleuth.listener.json.slf4j.enabled") - public JsonSlf4jSpanListener jsonSlf4jSpanListener() { - return new JsonSlf4jSpanListener(); + @Configuration + @ConditionalOnClass(Log.class) + protected static class JsonConfiguration { + @Bean + @ConditionalOnProperty("spring.cloud.sleuth.log.json.enabled") + public JsonLogSpanListener jsonSlf4jSpanListener() { + return new JsonLogSpanListener(); + } } } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/slf4j/Slf4jSpanListener.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jSpanListener.java similarity index 97% rename from spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/slf4j/Slf4jSpanListener.java rename to spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jSpanListener.java index 754f4fce2..019378c85 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/slf4j/Slf4jSpanListener.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jSpanListener.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.cloud.sleuth.slf4j; +package org.springframework.cloud.sleuth.log; import static org.springframework.cloud.sleuth.Trace.SPAN_ID_NAME; import static org.springframework.cloud.sleuth.Trace.TRACE_ID_NAME; diff --git a/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories b/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories index abd858dc9..00d6ba6eb 100644 --- a/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories +++ b/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories @@ -1,7 +1,7 @@ # Auto Configuration org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.springframework.cloud.sleuth.autoconfig.TraceAutoConfiguration,\ -org.springframework.cloud.sleuth.slf4j.SleuthSlf4jAutoConfiguration,\ +org.springframework.cloud.sleuth.log.SleuthLogAutoConfiguration,\ org.springframework.cloud.sleuth.instrument.scheduling.TraceSchedulingAutoConfiguration,\ org.springframework.cloud.sleuth.instrument.web.TraceWebAutoConfiguration,\ org.springframework.cloud.sleuth.instrument.web.client.TraceWebClientAutoConfiguration diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/slf4j/JsonSlf4jSpanListenerTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/log/JsonLogSpanListenerTests.java similarity index 93% rename from spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/slf4j/JsonSlf4jSpanListenerTests.java rename to spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/log/JsonLogSpanListenerTests.java index 1daf508b3..969006d46 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/slf4j/JsonSlf4jSpanListenerTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/log/JsonLogSpanListenerTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.cloud.sleuth.slf4j; +package org.springframework.cloud.sleuth.log; import static org.junit.Assert.*; @@ -30,13 +30,13 @@ import java.io.IOException; /** * @author Spencer Gibb */ -public class JsonSlf4jSpanListenerTests { +public class JsonLogSpanListenerTests { @Rule public final OutputCapture output = new OutputCapture(); @Test public void jsonSpanIsOnOneLine() throws IOException { - JsonSlf4jSpanListener listener = new JsonSlf4jSpanListener(); + JsonLogSpanListener listener = new JsonLogSpanListener(); Span span = MilliSpan.builder() .name("testSpan") .spanId("spanId1")