aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/main/scala/kamon/trace/logging/MdcKeysSupport.scala
diff options
context:
space:
mode:
authordxspasojevic <dxspasojevic@agiledigital.com.au>2016-06-18 12:37:01 +1000
committerdxspasojevic <dxspasojevic@agiledigital.com.au>2016-06-18 13:01:55 +1000
commit8e7f64134c6e2ef48926bf63943fa3338636a62c (patch)
tree36339fbbaa2b2805cd2f4d9afde544d7cd3a3483 /kamon-core/src/main/scala/kamon/trace/logging/MdcKeysSupport.scala
parent5776b3c27bcb9223ae77b596b32b69d4006e0698 (diff)
downloadKamon-8e7f64134c6e2ef48926bf63943fa3338636a62c.tar.gz
Kamon-8e7f64134c6e2ef48926bf63943fa3338636a62c.tar.bz2
Kamon-8e7f64134c6e2ef48926bf63943fa3338636a62c.zip
= kamon-core: add context name and token to MDC
Diffstat (limited to 'kamon-core/src/main/scala/kamon/trace/logging/MdcKeysSupport.scala')
-rw-r--r--kamon-core/src/main/scala/kamon/trace/logging/MdcKeysSupport.scala16
1 files changed, 13 insertions, 3 deletions
diff --git a/kamon-core/src/main/scala/kamon/trace/logging/MdcKeysSupport.scala b/kamon-core/src/main/scala/kamon/trace/logging/MdcKeysSupport.scala
index abe56cd3..60a02ef8 100644
--- a/kamon-core/src/main/scala/kamon/trace/logging/MdcKeysSupport.scala
+++ b/kamon-core/src/main/scala/kamon/trace/logging/MdcKeysSupport.scala
@@ -17,13 +17,18 @@
package kamon.trace.logging
import kamon.trace.TraceLocal.AvailableToMdc
-import kamon.trace.{ Tracer, EmptyTraceContext, MetricsOnlyContext, TraceContext }
+import kamon.trace.{ EmptyTraceContext, MetricsOnlyContext, TraceContext, Tracer }
import kamon.util.Supplier
-
import org.slf4j.MDC
trait MdcKeysSupport {
+ val traceTokenKey = "traceToken"
+
+ val traceNameKey = "traceName"
+
+ private val defaultKeys = Seq(traceTokenKey, traceNameKey)
+
def withMdc[A](thunk: ⇒ A): A = {
val keys = copyToMdc(Tracer.currentContext)
try thunk finally keys.foreach(key ⇒ MDC.remove(key))
@@ -34,7 +39,12 @@ trait MdcKeysSupport {
private[this] def copyToMdc(traceContext: TraceContext): Iterable[String] = traceContext match {
case ctx: MetricsOnlyContext ⇒
- ctx.traceLocalStorage.underlyingStorage.collect {
+
+ // Add the default key value pairs for the trace token and trace name.
+ MDC.put(traceTokenKey, ctx.token)
+ MDC.put(traceNameKey, ctx.name)
+
+ defaultKeys ++ ctx.traceLocalStorage.underlyingStorage.collect {
case (available: AvailableToMdc, value) ⇒ Map(available.mdcKey -> String.valueOf(value))
}.map { value ⇒ value.map { case (k, v) ⇒ MDC.put(k, v); k } }.flatten