一、使用feign原生的配置方式
1、新增配置類,設定日誌級別
@slf4j
@configuration
public class feignconfig
}
2、為需要列印日誌的類增加配置
@feignclient(url = "$")
public inte***ce requesttestapi
# logging.level後面是具體的類全路徑
logging.level.pengjx.feign.requesttestapi=debug
日誌列印:
二、自定義日誌列印
1、重寫feign.logger
簡單看下原始碼,了解下預設的日誌列印資訊及格式
log是我們繼承logger後需要實現的介面,就是常寫的日誌列印語句,只不過列印的內容,feign作為引數傳給我們了,個人理解是為了相容不同的日誌版本。
logrequest:列印請求的資訊,從原始碼中可以看出根據日誌級別列印不同的資訊
logandrebufferresponse:列印響應資訊,從原始碼中可以看出根據日誌級別列印不同的資訊
一般我們http請求只需要列印請求位址,請求報文和返回報文,其他的資訊不回太關心,但是如果級別設定為full,會列印出很多的其他資訊,如header,設定為basic或headers,又無法列印我們關心的請求報文。
這種情況下,我們就需要重寫logrequest和logandrebufferresponse,按我們自定義的格式來列印我們關心的資訊。
優點:只列印關心的資訊;自定義列印格式。
public class feignlogger extends logger
@override
protected response logandrebufferresponse(string configkey,
level loglevel,
response response,
long elapsedtime)
throws ioexception
log(configkey, "request【%s】, body【%s】, response【%s】", requestmsg, bodymsg, responsemsg);
return response;
}@override
protected void log(string configkey, string format, object... args)
}
二、註冊feignlogger
feignconfig類中增加
@bean
public logger logger()
ok了,現在所有的feignclient都會按照我們自定義的格式來列印請求日 FeignClient配置日誌訪問
1.配置訪問級別debug yml檔案中配置日誌級別 logging level com.example demo feigntestservice debug 2.定義配置檔案,無配置檔案日誌不生效 configuration 可以看到日誌已經列印出來3.優先順序問題 如果yml檔案和 confi...
FeignClient註解屬性
feignclient value run product fallback productclientservicefallback.class feignclient name runclient url localhost 8001 public inte ce productclientse...
FeignClient註解詳解
spring cloud 是目前最火的微服務框架,feign 作為基礎元件之一,在 spring cloud 體系中發揮了重要的作用。一 feignclient註解 feignclient註解被 target elementtype.type 修飾,表示feignclient註解的作用目標在介面上 ...