Je souhaite connecter l'hôte distant appelé à STDOUT lors de l'utilisation de Finagle Client. Mais autant que je vois ce n'est pas possible via com.twitter.finagle.http.filter.LoggingFilter
; Son #format
(par exemple voir ci-dessous) méthode ne peut pas accéder à l'hôte réel:Enregistrement de l'hôte distant dans Finagle
request.remoteHost()
retours0.0.0.0
request.remoteAddress()
retourne un objet qui contient essentiellement ci-dessus IPrequest.host()
retourne un objetNone
Ma première supposition est/était que l'accès à l'hôte n'est pas possible car L'équilibrage de la charge côté client de Finagle est plus profond dans la pile.
C'est le code de test que j'utilise:
LoggingFilter<Request> loggingFilter = new LoggingFilter<>(
new Logger(this.getClass().getSimpleName(), java.util.logging.Logger.getLogger(this.getClass().getSimpleName())),
new LogFormatter<Request, Response>() {
@Override
public String format(Request request, Response reply, Duration replyTime) {
return null;
}
@Override
public String formatException(Request request, Throwable throwable, Duration replyTime) {
return null;
}
});
Service<Request, Response> service = Http.client().newService("localhost:8090,localhost:8091");
Future<Response> response = loggingFilter.andThen(service).apply(Request.apply("/profiles/me"));