diff options
author | Stewart Stewart <stewart@driver.xyz> | 2017-09-25 18:51:53 -0700 |
---|---|---|
committer | Stewart Stewart <stewart@driver.xyz> | 2017-09-25 18:52:20 -0700 |
commit | 8d975a4d3681d0ba41bd8272f572a78de62e7f89 (patch) | |
tree | 760ed57257308d9eeb78106911f86fcc76c59308 /src/main/scala/xyz/driver/core/database | |
parent | 508d59ea5e2865a5bfc6d380527b1ab91e0fddd5 (diff) | |
download | driver-core-8d975a4d3681d0ba41bd8272f572a78de62e7f89.tar.gz driver-core-8d975a4d3681d0ba41bd8272f572a78de62e7f89.tar.bz2 driver-core-8d975a4d3681d0ba41bd8272f572a78de62e7f89.zip |
Add MdcExecutionContext to logging pacagkev1.1.1
Diffstat (limited to 'src/main/scala/xyz/driver/core/database')
-rw-r--r-- | src/main/scala/xyz/driver/core/database/MdcAsyncExecutor.scala | 9 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/database/MdcExecutionContext.scala | 28 |
2 files changed, 8 insertions, 29 deletions
diff --git a/src/main/scala/xyz/driver/core/database/MdcAsyncExecutor.scala b/src/main/scala/xyz/driver/core/database/MdcAsyncExecutor.scala index ac8456e..5939efb 100644 --- a/src/main/scala/xyz/driver/core/database/MdcAsyncExecutor.scala +++ b/src/main/scala/xyz/driver/core/database/MdcAsyncExecutor.scala @@ -1,4 +1,9 @@ -package xyz.driver.core.database +/** Code ported from "de.geekonaut" %% "slickmdc" % "1.0.0" + * License: @see https://github.com/AVGP/slickmdc/blob/master/LICENSE + * Blog post: @see http://50linesofco.de/post/2016-07-01-slick-and-slf4j-mdc-logging-in-scala.html + */ +package xyz.driver.core +package database import java.util.concurrent._ import java.util.concurrent.atomic.AtomicInteger @@ -7,6 +12,8 @@ import scala.concurrent._ import com.typesafe.scalalogging.StrictLogging import slick.util.AsyncExecutor +import logging.MdcExecutionContext + /** Taken from the original Slick AsyncExecutor and simplified * @see https://github.com/slick/slick/blob/3.1/slick/src/main/scala/slick/util/AsyncExecutor.scala */ diff --git a/src/main/scala/xyz/driver/core/database/MdcExecutionContext.scala b/src/main/scala/xyz/driver/core/database/MdcExecutionContext.scala deleted file mode 100644 index f08f16c..0000000 --- a/src/main/scala/xyz/driver/core/database/MdcExecutionContext.scala +++ /dev/null @@ -1,28 +0,0 @@ -package xyz.driver.core.database - -import org.slf4j.MDC -import scala.concurrent.ExecutionContext - -/** - * Execution context proxy for propagating SLF4J diagnostic context from caller thread to execution thread. - */ -class MdcExecutionContext(executionContext: ExecutionContext) extends ExecutionContext { - override def execute(runnable: Runnable): Unit = { - val callerMdc = MDC.getCopyOfContextMap - executionContext.execute(new Runnable { - def run(): Unit = { - // copy caller thread diagnostic context to execution thread - // scalastyle:off - if (callerMdc != null) MDC.setContextMap(callerMdc) - try { - runnable.run() - } finally { - // the thread might be reused, so we clean up for the next use - MDC.clear() - } - } - }) - } - - override def reportFailure(cause: Throwable): Unit = executionContext.reportFailure(cause) -} |