2016-09-21 10 views

答えて

1

あなたがマニュアルに示されたコードの同じスニップ見つけることができるドキュメントここ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" 
} 
関連する問題