Есть ли способ логировать только тело с симулированным весенним клиентом?
Есть ли способ логировать только тело с симулированным весенним клиентом? Используя Log.level, мне кажется, что я могу включать только тело с полной регистрацией, и в этом случае он также печатает заголовки. Который я не хочу видеть в журналах.
1 ответ
По умолчанию Logger
использует Log.Level
контролировать то, что зарегистрировано и работает способом, который является аддитивным. Это означает, что повышение уровня регистрирует больше информации. Чтобы настроить это поведение, вам нужно будет предоставить свой собственный Logger
реализация. В частности, вы можете расширить один из включенных регистраторов и настроить logAndRebufferResponse
метод:
public class MyLogger extends JavaLogger {
protected Response logAndRebufferResponse(String configKey,
Level logLevel,
Response response,
long elapsedTime) {
// only log the response data, skip the headers
}
}
Затем включите этот регистратор в конфигурацию Feign.
API api = Feign.builder()
.logger(new MyLogger())
.logLevel(Logger.Level.FULL)
.target(API.class, "https://api.example.com");
Все экземпляры этого Feign Client теперь будут использовать ваш логгер.