Feign配置日志的打印級別


一、細粒度的配置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(默認)BASICHEADERSFULL,通過注冊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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM