Skip to content

Slf4jLogger returns different response depending on logging level #1336

@gaeulautumn

Description

@gaeulautumn
package feign.slf4j;

public class Slf4jLogger extends feign.Logger {
...

  @Override
  protected Response logAndRebufferResponse(String configKey,
                                            Level logLevel,
                                            Response response,
                                            long elapsedTime)
      throws IOException {
    if (logger.isDebugEnabled()) {
      return super.logAndRebufferResponse(configKey, logLevel, response, elapsedTime);
    }
    return response;
  }
...
}

It returns different response object depending on logging level.
When setting logging level above INFO, it returns just response, and it's not same as logAndRebufferResponse 's return value.
So when I try to access response.body().toString() in ErrorDecoder, I cannot get proper response value.
What I expected was json string value but I got feign.okhttp.OkHttpClient$1@blabla
It works fine with DEBUG/TRACE logging level.

Is it issue or am I missing something?

Metadata

Metadata

Assignees

No one assigned

    Labels

    feedback providedFeedback has been provided to the author

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions