diff options
author | vlad <vlad@driver.xyz> | 2017-04-01 03:51:29 -0700 |
---|---|---|
committer | vlad <vlad@driver.xyz> | 2017-04-01 03:51:29 -0700 |
commit | 0ed008ab290074eae0f11fa0149a736e8abd7064 (patch) | |
tree | 49f4ae0ba4992e348cb6ee70563eadae32b9d433 /src/main/scala/xyz/driver/core/app.scala | |
parent | 0dc9f24cef4ea4e58afa59fab565e36796c0cb1d (diff) | |
download | driver-core-0ed008ab290074eae0f11fa0149a736e8abd7064.tar.gz driver-core-0ed008ab290074eae0f11fa0149a736e8abd7064.tar.bz2 driver-core-0ed008ab290074eae0f11fa0149a736e8abd7064.zip |
More loggingv0.10.40
Diffstat (limited to 'src/main/scala/xyz/driver/core/app.scala')
-rw-r--r-- | src/main/scala/xyz/driver/core/app.scala | 42 |
1 files changed, 25 insertions, 17 deletions
diff --git a/src/main/scala/xyz/driver/core/app.scala b/src/main/scala/xyz/driver/core/app.scala index 4b81897..361fb74 100644 --- a/src/main/scala/xyz/driver/core/app.scala +++ b/src/main/scala/xyz/driver/core/app.scala @@ -67,24 +67,32 @@ object app { val versionRt = versionRoute(version, gitHash, time.currentTime()) val _ = Future { - http.bindAndHandle(route2HandlerFlow({ ctx => - val trackingId = rest.extractTrackingId(ctx.request) - MDC.put("trackingId", trackingId) - - def requestLogging: Future[Unit] = Future { - log.audit(s"""Received request {"method":"${ctx.request.method.value}","url": "${ctx.request.uri}"}""") + http.bindAndHandle(route2HandlerFlow(extractHost { origin => + extractClientIP { + ip => + { ctx => + val trackingId = rest.extractTrackingId(ctx.request) + MDC.put("trackingId", trackingId) + MDC.put("origin", origin) + MDC.put("ip", ip.toOption.map(_.getHostAddress).getOrElse("unknown")) + + def requestLogging: Future[Unit] = Future { + log.audit( + s"""Received request {"method":"${ctx.request.method.value}","url": "${ctx.request.uri}"}""") + } + + val contextWithTrackingId = + ctx.withRequest(ctx.request.addHeader(RawHeader(ContextHeaders.TrackingIdHeader, trackingId))) + + handleExceptions(ExceptionHandler(exceptionHandler))({ c => + requestLogging.flatMap { _ => + respondWithHeaders(List(RawHeader(ContextHeaders.TrackingIdHeader, trackingId))) { + modules.map(_.route).foldLeft(versionRt ~ healthRoute ~ swaggerRoutes)(_ ~ _) + }(c) + } + })(contextWithTrackingId) + } } - - val contextWithTrackingId = - ctx.withRequest(ctx.request.addHeader(RawHeader(ContextHeaders.TrackingIdHeader, trackingId))) - - handleExceptions(ExceptionHandler(exceptionHandler))({ c => - requestLogging.flatMap { _ => - respondWithHeaders(List(RawHeader(ContextHeaders.TrackingIdHeader, trackingId))) { - modules.map(_.route).foldLeft(versionRt ~ healthRoute ~ swaggerRoutes)(_ ~ _) - }(c) - } - })(contextWithTrackingId) }), interface, port)(materializer) } } |