如何记录传入的请求和响应?
How to log incoming request and response?
我正在使用 Akka HTTP 并希望记录每个传入请求和传出结果。我知道,它存在一个 logRequestResult 指令,但是如何使用它呢?还是适合我的目的?
是的,这就是您正在寻找的指令,我同意 - 官方文档有点难以理解。
下面是 logRequestResult
端点的样子:
val requestHandler: Route = logRequestResult("req/resp", Logging.InfoLevel) {
handleExceptions(errorHandler) {
endpointRoutes
}
}
def start()(implicit actorSystem: ActorSystem,
actorMaterializer: ActorMaterializer): Future[Http.ServerBinding] =
Http().bindAndHandle(
handler = requestHandler,
interface = host,
port = port)
请注意,您可以为每个 request-response 条目选择通用前缀,即 req/resp
,以及 request-response 日志可用的日志记录级别,即 Logging.InfoLevel
.
以上示例生成的日志行与以下类似:
[your-actor-system-akka.actor.default-dispatcher-19] INFO akka.actor.ActorSystemImpl - req/resp: Response for
Request : HttpRequest(HttpMethod(GET),http://<host>/<path>,List(Host: <host>, Connection: close: <function1>),HttpEntity.Strict(none/none,ByteString()),HttpProtocol(HTTP/1.1))
Response: Complete(HttpResponse(200 OK,List(),HttpEntity.Strict(text/plain; charset=UTF-8,OK),HttpProtocol(HTTP/1.1)))
Hakking 快乐 :)
我正在使用 Akka HTTP 并希望记录每个传入请求和传出结果。我知道,它存在一个 logRequestResult 指令,但是如何使用它呢?还是适合我的目的?
是的,这就是您正在寻找的指令,我同意 - 官方文档有点难以理解。
下面是 logRequestResult
端点的样子:
val requestHandler: Route = logRequestResult("req/resp", Logging.InfoLevel) {
handleExceptions(errorHandler) {
endpointRoutes
}
}
def start()(implicit actorSystem: ActorSystem,
actorMaterializer: ActorMaterializer): Future[Http.ServerBinding] =
Http().bindAndHandle(
handler = requestHandler,
interface = host,
port = port)
请注意,您可以为每个 request-response 条目选择通用前缀,即 req/resp
,以及 request-response 日志可用的日志记录级别,即 Logging.InfoLevel
.
以上示例生成的日志行与以下类似:
[your-actor-system-akka.actor.default-dispatcher-19] INFO akka.actor.ActorSystemImpl - req/resp: Response for
Request : HttpRequest(HttpMethod(GET),http://<host>/<path>,List(Host: <host>, Connection: close: <function1>),HttpEntity.Strict(none/none,ByteString()),HttpProtocol(HTTP/1.1))
Response: Complete(HttpResponse(200 OK,List(),HttpEntity.Strict(text/plain; charset=UTF-8,OK),HttpProtocol(HTTP/1.1)))
Hakking 快乐 :)