在使用spring boot
開發web api
的時候希望把request
,request header
,response
reponse header
,uri
,method
等等的資訊記錄到我們的日誌中,方便我們排查問題,也能對系統的資料做一些統計。
spring
使用了dispatcherservlet
來攔截並分發請求,我們只要自己實現乙個dispatcherservlet
並在其中對請求和響應做處理列印到日誌中即可。
我們實現乙個自己的分發servlet
,它繼承於dispatcherservlet
,我們實現自己的dodispatch(httpservletrequest request, httpservletresponse response)
方法。
}複製**
實現好我們的loggabledispatcherservlet
後,接下來就是要指定使用loggabledispatcherservlet
來分發請求。
public
class
implements
@bean
public servletregistrationbean dispatcherregistration
() @bean(name = dispatcherservletautoconfiguration.default_dispatcher_servlet_bean_name)
public dispatcherservlet dispatcherservlet()}
複製**
增加乙個簡單的controller
來測試一下
@restcontroller
public
class
hellocontroller
}複製**
使用curl
傳送乙個post
請求:
複製**檢視列印的日誌:
,
"method":"post",
"request":,
"status":200,
"response":,
"responseheaders":
}複製**
當然列印出來是在一行中的,我進行了一下格式化。我們還可以在日誌中增加請求的時間,耗費的時間以及異常資訊等。 Spring boot(持續記錄)
一 註解 restcontroller 用於標註控制層元件 如struts中的action responsebody和 controller的合集。controlleradvice 用此註解去定義全域性異常統一處理的類。controlleradvice 註解定義全域性異常處理類 controller...
Springboot記錄總結
1.搭建方便快速,繼承spring框架,和多方框架有良好的的結合 2.提供一些大型專案常見的非功能性特性,如內嵌服務 安全 指標 健康檢測 外部化配置等。3.盡可能減少xml配置。restcontroller 相當於 responsebody和 controller的聯合註解,使各個controll...
springboot日誌記錄操作
1 springboot使用的是sel4j 抽象類 日誌框架,具體是由logback來實現 使用方式如下 logger logger logge ctory.getlogger getclass logger.trace logger.debug logger.info logger.warn lo...