1. 程式人生 > >微服務springcloud-Feign日誌

微服務springcloud-Feign日誌

Feign的日誌

Feign對日誌的處理非常靈活。可為每個Feign客戶端指定日誌記錄策略,每個Feign客戶端都會建立一個logger。預設情況下,logger的名稱是Feign介面的完整類名、需要注意的是,Feign的日誌列印 只會對DEBUG級別做出響應。

NONE:	不記錄任何日誌(預設值)。
BASIC:	僅記錄請求方法、URL、響應狀態程式碼以及執行時間。
HEADERS:記錄BASIC級別的基礎上,記錄請求和響應的header。
FULL:	記錄請求和響應的header,body和元資料。

1.複製專案microservice-consumer-movie-feign,將ArtifactId修改為microservice-consumer-movie-feign-logging。

2.編寫Feign配置類

@Configuration
public class FeignLogConfiguration {
    @Bean
    Logger.Level FeignLoggerLevel(){
        return Level.FULL;
    }
}

3.修改Feign的介面,指定配置類

@FeignClient(name="users", configuration = FeignLogConfiguration.class)
public interface UserFeignClient {
    @RequestMapping
(value ="/{id}",method = RequestMethod.GET) public User findById(@PathVariable("id") Long id); }

4.在application.yml中新增以下內容,指定Feign介面的日誌級別為DEBUG

logging:
    level:
        com.aster.user.feign.UserFeignClient: DEBUG
 #將Feign介面的日誌級別為DEBUG,因為Feign的Logger.Level
 #只對DEBUG做出響應。

5.測試

1.啟動microservice-discovery-eureka。
2.啟動micros-provider-user。
3.啟動microservice-consumer-movie-feign-logging
4.訪問http://localhost:8010/user/1,可以看到如下日誌
在這裡插入圖片描述

5.將日誌級別修改為BASIC (注意是 return Level.BASIC;)日誌如下:
在這裡插入圖片描述

本文大部分內容轉載自周立的《Spring Cloud與Docker微服務架構實戰》