Spring Boot 記錄 Http 日誌

2021-09-24 06:25:12 字數 1864 閱讀 8986

在使用spring boot開發web api的時候希望把requestrequest headerresponsereponse 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...