aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/database
diff options
context:
space:
mode:
authorStewart Stewart <stewart@driver.xyz>2017-09-25 18:51:53 -0700
committerStewart Stewart <stewart@driver.xyz>2017-09-25 18:52:20 -0700
commit8d975a4d3681d0ba41bd8272f572a78de62e7f89 (patch)
tree760ed57257308d9eeb78106911f86fcc76c59308 /src/main/scala/xyz/driver/core/database
parent508d59ea5e2865a5bfc6d380527b1ab91e0fddd5 (diff)
downloaddriver-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.scala9
-rw-r--r--src/main/scala/xyz/driver/core/database/MdcExecutionContext.scala28
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)
-}