一、細粒度的配置Feign的日志級別(針對每個微服務配置)
1、java代碼方式
(1)在Feign接口注解上面配置configuration
/** * @author : maybesuch * @version : 1.0 * @Description : 用戶中心Feign接口 * @Date : 2020/1/9 11:43 * @Copyright : Copyright (c) 2020 All Rights Reserved **/ @FeignClient(value = "user-center", configuration = UserCenterFeignConfiguration.class) public interface UserCenterFeignClient { @GetMapping("/users/{id}") UserDTO findById(@PathVariable("id") Integer id); }
(2)定義configuration內容,也就是feign的日志級別
Logger有四種類型:NONE(默認)
、BASIC
、HEADERS
、FULL
,通過注冊Bean來設置日志記錄級別
注意:在此方法上不需要@Configuration注解,否則會被所有的FeignClient共享,如果添加了注解,則需要將此類放到啟動時掃描不到的包
/** * @author : maybesuch * @version : 1.0 * @Description : 定義請求用戶中心Feign的日志級別 * @Date : 2020/1/9 17:24 * @Copyright : Copyright (c) 2020 All Rights Reserved **/ public class UserCenterFeignConfiguration { @Bean Logger.Level feignLoggerLevel(){ // 設置日志 return Logger.Level.FULL; } }
(3)將Feign的全路徑在application.yml中配置
logging: level: # com.maybesuch.contentcenter.feignclient.UserCenterFeignClient: debug com.maybesuch: debug
2、配置文件的方式
只需在application.yml中添加配置:
logging: level: # com.maybesuch.contentcenter.feignclient.UserCenterFeignClient: debug com.maybesuch: debug feign: client: config: # 要調用服務的名稱 user-center: loggerLevel: full
二、全局日志級別的配置
1、java代碼的方式
(1)在啟動類@EnableFeignClients注解上配置defaultConfiguration
@SpringBootApplication @EnableFeignClients(defaultConfiguration = GlobalFeignConfiguration.class) public class ContentCenterApplication { public static void main(String[] args) { SpringApplication.run(ContentCenterApplication.class, args); } }
(2)定義GlobalFeignConfiguration類,此類也不需要@Configuration注解
/** * @author : maybesuch * @version : 1.0 * @Description : 定義全局Feign的日志級別 * @Date : 2020/1/9 17:24 * @Copyright : Copyright (c) 2020 All Rights Reserved **/ public class GlobalFeignConfiguration { @Bean Logger.Level feignLoggerLevel(){ return Logger.Level.FULL; } }
(3)配置文件application.yml中需配置日志級別方能打印出Feign調用的日志信息
logging:
level:
com.maybesuch: debug
2、配置文件方式
只需在application.yml中添加配置:
logging: level: com.maybecare: debug feign: client: config: # feign全局日志級別 default: loggerLevel: full
日志打印結果:
c.m.c.feignclient.UserCenterFeignClient : [UserCenterFeignClient#findById] ---> GET http://user-center/users/1 HTTP/1.1 c.m.c.feignclient.UserCenterFeignClient : [UserCenterFeignClient#findById] ---> END HTTP (0-byte body) c.m.c.feignclient.UserCenterFeignClient : [UserCenterFeignClient#findById] <--- HTTP/1.1 200 (17ms) c.m.c.feignclient.UserCenterFeignClient : [UserCenterFeignClient#findById] content-type: application/json;charset=UTF-8 c.m.c.feignclient.UserCenterFeignClient : [UserCenterFeignClient#findById] date: Fri, 10 Jan 2020 05:33:40 GMT c.m.c.feignclient.UserCenterFeignClient : [UserCenterFeignClient#findById] transfer-encoding: chunked c.m.c.feignclient.UserCenterFeignClient : [UserCenterFeignClient#findById] c.m.c.feignclient.UserCenterFeignClient : [UserCenterFeignClient#findById] {"id":1,"bane":"maybesuch"} c.m.c.feignclient.UserCenterFeignClient : [UserCenterFeignClient#findById] <--- END HTTP (161-byte body)