2016-10-04 60 views
1

我有一個彈簧安置服務,有時當我請求REST服務,我得到一個HTTP 401。我期待調查這個問題,這是間歇性和不隨時都會發生。 (這是我每次發送的相同請求)。我還集成了swagger來提供REST文檔。 我作爲一個Web應用程序部署我春天REST服務到Tomcat 7記錄傳入和傳出的HTTP REST請求/春/ Tomcat的響應

  1. 我如何才能登錄的傳入和傳出的HTTP請求,即使請求是未經認證的請求。我希望能夠綁定所有傳入的請求及其相應的傳出響應。這也是我想要推廣到生產應用程序中的。

  2. 我可以採取什麼樣的最佳做法,在春季採伐方面的REST服務,我可以使用彈簧或Tomcat提供了更好的記錄和調查的任何功能?

感謝

+0

春天有一個默認的過濾器來做到這一點看http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/filter/CommonsRequestLoggingFilter.html。如果你想更多地使用像https://cloud.spring.io/spring-cloud-sleuth/這樣的東西來集中記錄/跟蹤。 –

回答

1

也許是爲了做到這一點,最好的方法是結合使用Logging framework定製javax.servlet.Filter。它可以跟蹤您在應用程序中使用的其他環境(例如Spring MVC或Struts)的所有HTTP請求/響應。

正是在這種情況下,記錄必須從其他 部分應用程序,因爲分開工作很重要的事情,否則這將取決於一些組件和是或可以在所有被打破並不反映真正的低級別事件。

我可以建議你使用Logback,因爲它有開箱即用的組件,可以做你想做的事。

與Web應用程序可能看起來像Logback配置如下:

的web.xml

<filter> 
    <filter-name>TeeFilter</filter-name> 
    <filter-class>ch.qos.logback.access.servlet.TeeFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>TeeFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

更多細節可以在Logback documentation找到。