diff options
author | dxspasojevic <dxspasojevic@agiledigital.com.au> | 2016-06-18 12:37:01 +1000 |
---|---|---|
committer | dxspasojevic <dxspasojevic@agiledigital.com.au> | 2016-06-18 13:01:55 +1000 |
commit | 8e7f64134c6e2ef48926bf63943fa3338636a62c (patch) | |
tree | 36339fbbaa2b2805cd2f4d9afde544d7cd3a3483 /kamon-core/src/main/scala/kamon/trace/logging/MdcKeysSupport.scala | |
parent | 5776b3c27bcb9223ae77b596b32b69d4006e0698 (diff) | |
download | Kamon-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.scala | 16 |
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 |