1
나는 scala와 akka-http로 지어진 http 서버를 가지고있다. 클라이언트에게 보낸 오류 응답을 기록 할 수있는 방법이 있습니까?Akka-http 서버 오류 응답을 기록하는 방법은 무엇입니까?
당신은 여기 LogResult Directive당신이 문서에 표시된 동일한 코드가 잘린 찾을 수있는 문서에 좀 걸릴 수 있습니다
나는 scala와 akka-http로 지어진 http 서버를 가지고있다. 클라이언트에게 보낸 오류 응답을 기록 할 수있는 방법이 있습니까?Akka-http 서버 오류 응답을 기록하는 방법은 무엇입니까?
당신은 여기 LogResult Directive당신이 문서에 표시된 동일한 코드가 잘린 찾을 수있는 문서에 좀 걸릴 수 있습니다
:
// different possibilities of using logResponse
// The first alternatives use an implicitly available LoggingContext for logging
// marks with "get-user", log with debug level, HttpResponse.toString
DebuggingDirectives.logResult("get-user")
// marks with "get-user", log with info level, HttpResponse.toString
DebuggingDirectives.logResult(("get-user", Logging.InfoLevel))
// logs just the response status at debug level
def responseStatus(res: RouteResult): String = res match {
case RouteResult.Complete(x) => x.status.toString
case RouteResult.Rejected(rejections) => "Rejected: " + rejections.mkString(", ")
}
DebuggingDirectives.logResult(responseStatus _)
// logs just the response status at info level
def responseStatusAsInfo(res: RouteResult): LogEntry = LogEntry(responseStatus(res), Logging.InfoLevel)
DebuggingDirectives.logResult(responseStatusAsInfo _)
// This one doesn't use the implicit LoggingContext but uses `println` for logging
def printResponseStatus(res: RouteResult): Unit = println(responseStatus(res))
val logResultPrintln = DebuggingDirectives.logResult(LoggingMagnet(_ => printResponseStatus))
// tests:
Get("/") ~> logResultPrintln(complete("logged")) ~> check {
responseAs[String] shouldEqual "logged"
}
을