Estoy tratando de hacer que el registro funcione para cada solicitud de un cliente de descanso de Fingir. Sin embargo, no puedo hacer que el registro funcione, mientras que el registro Slf4j 'estándar' funciona.
tengo lo siguiente:
public MyClient() { initConnectionProperties(); this.service = Feign.builder() .contract(new JAXRSContract()) .decoder(getJacksonDecoder()) .encoder(getJacksonEncoder()) .requestInterceptor(new BasicAuthRequestInterceptor(user, password)) //.client(new OkHttpClient()) .logger(new Slf4jLogger(MyClient.class)) //not working .logLevel(feign.Logger.Level.BASIC) .target(MyClient.class, this.url); logger.info("Connection parameters: url = " + url + ", user = " + user); //Is working }Debe configurar el inicio de sesión en application.properties como se muestra a continuación:
logging.level.<package path>.MyClient=DEBUGSi está utilizando application.yml entonces:
logging.level.<package path>.MyClient: DEBUGEl nivel de registro se puede configurar para decirle a Fingir cuánto registrar.
Las opciones son:
Ejemplo:
logLevel(feign.Logger.Level.NONE) or logLevel(feign.Logger.Level.BASIC) or logLevel(feign.Logger.Level.HEADERS) or logLevel(feign.Logger.Level.FULL)Para más detalles, puede consultar este
Así es como pude iniciar sesión usando la clase de configuración personalizada
Nota Fingir registro solo responde al nivel DEBUG.
Clase de configuración
@Configuration public class UserClientConfig { @Bean Logger.Level feignLoggerLevel() { return Logger.Level.HEADERS; } }Cliente
@FeignClient(name = "User", url = "http://localhost:8080",configuration=UserClientConfig.class) public interface UserClient { @RequestMapping(method = RequestMethod.GET, value = "/user") List<User> getAllUsers(); }aplicación.propiedades
logging.level.<pcakgepath>.UserClient: DEBUGPrimero debe establecer el nivel de registro para su clase de cliente falso en DEBUG, como Maverick ya mencionó en su respuesta.
Luego, si usa Spring Boot, además de la opción para crear clases @Configuration como Niraj ya mencionó en su respuesta, puede configurar cada cliente individualmente en las propiedades de su aplicación/archivo de configuración yml:
feign: client: config: the_name_of_your_feign_client: connectTimeout: 5000 readTimeout: 5000 loggerLevel: basic
O use default en lugar de the_name_of_your_feign_client para configurar todos sus clientes de simulación de la misma manera:
feign: client: config: default: connectTimeout: 5000 readTimeout: 5000 loggerLevel: basic