ApiBoot Logging支持指定單個(gè)或者多個(gè)路徑的前綴進(jìn)行采集,也就是我們可以指定/user/**或者/order/**下的單個(gè)或者同時(shí)指定多個(gè)路徑進(jìn)行采集請(qǐng)求日志,其他不符合Ant表達(dá)式的路徑就會(huì)被忽略掉。
創(chuàng)建示例項(xiàng)目
使用idea創(chuàng)建SpringBoot項(xiàng)目。
添加ApiBoot Logging依賴
創(chuàng)建項(xiàng)目后在pom.xml配置文件內(nèi)添加依賴如下所示:
org.springframework.bootspring-boot-starter-weborg.minbox.frameworkapi-boot-starter-loggingorg.minbox.frameworkapi-boot-dependencies2.1.4.RELEASEimportpom
默認(rèn)攔截路徑
ApiBoot Logging默認(rèn)的攔截路徑是/**,可以訪問org.minbox.framework.api.boot.autoconfigure.logging.ApiBootLoggingProperties屬性配置類查看源碼。
配置采集攔截器前綴
ApiBoot Logging提供了在application.yml配置文件內(nèi)修改的配置參數(shù)api.boot.logging.logging-path-prefix,該配置參數(shù)接收的類型為java.lang.String[],所以我們可以使用,逗號(hào)隔開配置多個(gè)路徑,如下所示:
spring:
application:
name: modify-apiboot-logging-collection-prefix
server:
port: 8080
api:
boot:
# ApiBoot Logging 相關(guān)配置
logging:
# 修改采集日志的前綴
logging-path-prefix: /user/**,/order/**
# 控制臺(tái)打印日志
show-console-log: true
# 美化控制臺(tái)打印的日志
format-console-log-json: true
啟用ApiBoot Logging Client
配置已經(jīng)完成,下面我們?cè)?code>入口類(XxxApplication)或者配置類(XxxConfiguration)上添加@EnableLoggingClient注解來啟用ApiBoot Logging的功能,如下所示:
/**
* 入口類
*
* @author 恒宇少年
*/
@SpringBootApplication
@EnableLoggingClient
public class ModifyApibootLoggingCollectionPrefixApplication {
public static void main(String[] args) {
SpringApplication.run(ModifyApibootLoggingCollectionPrefixApplication.class, args);
}
}
運(yùn)行測(cè)試
使用idea的Application或者java -jar xxx.jar的形式來運(yùn)行本章源碼,本章源碼的端口號(hào)配置為8080,我們需要從下面幾個(gè)點(diǎn)進(jìn)行測(cè)試。
測(cè)試點(diǎn):匹配/user/**路徑
添加測(cè)試控制器類UserController如下所示:
@RestController
@RequestMapping(value = "/user")
public class UserController {
/**
* 測(cè)試日志攔截路徑接口
*
* @param name
* @return
*/
@GetMapping
public String welcome(@RequestParam("name") String name) {
return "hello, " + name;
}
}
通過如下命令訪問測(cè)試接口:
? ~ curl http://localhost:8080/user/?name/=hengboy
hello, hengboy
/user路徑匹配/user/**表達(dá)式,所以我們?cè)诳刂婆_(tái)可以看到請(qǐng)求日志的打印。
測(cè)試點(diǎn):匹配/order/**路徑
添加測(cè)試控制器類OrderController如下所示:
@RestController
@RequestMapping(value = "/order")
public class OrderController {
@PostMapping
public String submit() {
return "訂單:" + UUID.randomUUID().toString() + ",提交成功.";
}
}
通過如下命令訪問測(cè)試接口:
? ~ curl -X POST http://localhost:8080/order
訂單:24a24d24-539e-4da9-9272-e68fd592313c,提交成功.
/order路徑匹配/order/**表達(dá)式,所以我們?cè)诳刂婆_(tái)也可以看到請(qǐng)求日志的打印。
測(cè)試點(diǎn):其他路徑
添加測(cè)試控制器類OtherController如下所示:
@RestController
public class OtherController {
@GetMapping(value = "/other")
public String other() {
return "this is other path";
}
}
通過如下命令訪問測(cè)試接口:
? ~ curl http://localhost:8080/other
this is other path
由于/other路徑并不匹配/user/**或者/order/**表達(dá)式,所以我們?cè)诳刂婆_(tái)并沒有看到日志的打印。
敲黑板,劃重點(diǎn)
ApiBoot Logging支持單個(gè)或者多個(gè)路徑配置來進(jìn)行過濾指定路徑前綴來采集日志,讓日志采集不再不可控,更精準(zhǔn)的定位到業(yè)務(wù)請(qǐng)求的日志采集。
審核編輯 黃昊宇
-
JAVA
+關(guān)注
關(guān)注
20文章
3001瀏覽量
116439 -
MySQL
+關(guān)注
關(guān)注
1文章
906瀏覽量
29534 -
人臉識(shí)別
+關(guān)注
關(guān)注
77文章
4127瀏覽量
88471
發(fā)布評(píng)論請(qǐng)先 登錄
PADS Logic中如何去修改元件的參考前綴?
前綴和真前綴的區(qū)別分析
ApiBoot Logging Admin可視化界面管理日志教程
ApiBoot Logging使用Rest Template透傳鏈路信息
ApiBoot Logging使用Spring Cloud Openfeign透傳鏈路信息
ApiBoot Logging整合Spring Cloud Eureka負(fù)載均衡上報(bào)日志
ApiBootLogging整合SpringSecurity安全上報(bào)日志
ApiBoot Logging忽略路徑不進(jìn)行采集日志的教程
vivo大數(shù)據(jù)日志采集Agent設(shè)計(jì)實(shí)踐
Spring Boot的日志框架使用
Python寫入到日志文件完整代碼
kernel日志寫入logd介紹
詳解journalctl日志管理
修改ApiBoot Logging日志采集前綴的教程
評(píng)論