1. 程式人生 > 程式設計 >ApiBoot Logging忽略路徑不進行採集日誌

ApiBoot Logging忽略路徑不進行採集日誌

ApiBoot Logging支援排除指定路徑不參與日誌的採集,當我們的服務整合actuator時,會不斷的重複呼叫內建的路徑導致大量採集到一些無關業務的日誌資訊,當然這只是一個例子,整合其他的第三方元件時也可能出現定時重複呼叫介面的場景。

建立示例專案

本章所使用的示例專案請訪問【修改ApiBoot Logging日誌採集的字首】文章底部訪問原始碼下載後匯入idea工具。

配置排除路徑

ApiBoot Logging提供了配置引數api.boot.logging.ignore-paths,該配置引數的資料型別為java.lang.String[],可以使用,逗號隔開配置多個忽略採集日誌的路徑。

修改application.yml配置檔案內容如下所示:

api:
  boot:
    # ApiBoot Logging 相關配置
    logging:
      # 修改採集日誌的字首
      logging-path-prefix: /user/**,/order/**
      # 控制檯列印日誌
      show-console-log: true
      # 美化控制檯列印的日誌
      format-console-log-json: true
      # 排除/user/info路徑不進行採集日誌
      ignore-paths: /user/info複製程式碼

在上面配置中排除了/user/info路徑採集日誌。

執行測試

匯入idea的原始碼並沒有新增/user/info路徑請求方法,下面我們修改UserController類如下所示:

/**
  * 使用者資訊
  * /user/info
  *
  * @return
  */
@GetMapping(value = "/info")
public String info() {
  return "this is user info";
}複製程式碼

使用Application方式啟動本章原始碼,通過curl方式訪問/user/info路徑,如下所示:

➜ ~ curl http://localhost:8080/user/info
this is user info複製程式碼

訪問成功後,檢視控制檯並未發現有請求日誌輸出,證明瞭/user/info路徑被排除了。

敲黑板,劃重點

api.boot.logging.ignore-paths配置引數與api.boot.logging.logging-path-prefix可以組合使用,可以進行重疊,排除的路徑是在org.minbox.framework.logging.client.interceptor.web.LoggingWebInterceptor#checkIgnore方法內進行判斷,支援Ant風格路徑過濾。

本章原始碼

本篇文章示例原始碼可以通過以下途徑獲取,目錄為SpringBoot2.x/modify-apiboot-logging-collection-prefix

  • Gitee:https://gitee.com/hengboy/spring-boot-chapter

作者個人 部落格

使用開源框架 ApiBoot 助你成為Api介面服務架構師