Akka Http:记录堆栈还是记录堆栈?

Akka Http:记录堆栈还是记录堆栈?,akka,akka-http,Akka,Akka Http,我正在编写一个自定义指令,使用cats.XorT来包装我的未来[Xor[a,B]]。我编写了以下代码: def authenticateOrRejectWithChallenge[T](authenticator: Option[HttpCredentials] ⇒ XorTFuture[T]): AuthenticationDirective[T] = extractExecutionContext.flatMap { implicit ec ⇒ extractCrede

我正在编写一个自定义指令,使用cats.XorT来包装我的未来[Xor[a,B]]。我编写了以下代码:

 def authenticateOrRejectWithChallenge[T](authenticator: Option[HttpCredentials] ⇒ XorTFuture[T]): AuthenticationDirective[T] =
    extractExecutionContext.flatMap { implicit ec ⇒
      extractCredentials.flatMap { cred ⇒
        onSuccess(authenticator(cred).value) flatMap {
          case Xor.Right(x) => provide(x)
          case Xor.Left(y:MyException) => reject(MyRejection(y)):Directive1[T]
          case Xor.Left(e) =>
            Directives.extractRequestContext.flatMap {
              r =>
                logger.error(e)(s"Unexpected authentication error when processing ${r.request}")
                reject(MyRejection(MyException.fromUnexpectedThrowable(e))):Directive1[T]
            }
        }
      }
    }
我想到了以下问题:

  • 登录到那个位置是愚蠢的吗?我应该登录到拒绝处理程序吗
  • 如何在拒绝处理程序中捕获当前请求记录器?(指令提取日志?)