ApiBoot Logging支持指定单个或者多个路径的前缀进行采集,也就是我们可以指定/user/**或者/order/**下的单个或者同时指定多个路径进行采集请求日志,其他不符合Ant表达式的路径就会被忽略掉。
创建示例项目
使用idea创建SpringBoot项目。
添加ApiBoot Logging依赖
创建项目后在pom.xml配置文件内添加依赖如下所示:
org.springframework.bootspring-boot-starter-weborg.minbox.frameworkapi-boot-starter-loggingorg.minbox.frameworkapi-boot-dependencies2.1.4.RELEASEimportpom
默认拦截路径
ApiBoot Logging默认的拦截路径是/**,可以访问org.minbox.framework.api.boot.autoconfigure.logging.ApiBootLoggingProperties属性配置类查看源码。
配置采集拦截器前缀
ApiBoot Logging提供了在application.yml配置文件内修改的配置参数api.boot.logging.logging-path-prefix,该配置参数接收的类型为java.lang.String[],所以我们可以使用,逗号隔开配置多个路径,如下所示:
spring:
application:
name: modify-apiboot-logging-collection-prefix
server:
port: 8080
api:
boot:
# ApiBoot Logging 相关配置
logging:
# 修改采集日志的前缀
logging-path-prefix: /user/**,/order/**
# 控制台打印日志
show-console-log: true
# 美化控制台打印的日志
format-console-log-json: true
启用ApiBoot Logging Client
配置已经完成,下面我们在入口类(XxxApplication)或者配置类(XxxConfiguration)上添加@EnableLoggingClient注解来启用ApiBoot Logging的功能,如下所示:
/**
* 入口类
*
* @author 恒宇少年
*/
@SpringBootApplication
@EnableLoggingClient
public class ModifyApibootLoggingCollectionPrefixApplication {
public static void main(String[] args) {
SpringApplication.run(ModifyApibootLoggingCollectionPrefixApplication.class, args);
}
}
运行测试
使用idea的Application或者java -jar xxx.jar的形式来运行本章源码,本章源码的端口号配置为8080,我们需要从下面几个点进行测试。
测试点:匹配/user/**路径
添加测试控制器类UserController如下所示:
@RestController
@RequestMapping(value = "/user")
public class UserController {
/**
* 测试日志拦截路径接口
*
* @param name
* @return
*/
@GetMapping
public String welcome(@RequestParam("name") String name) {
return "hello, " + name;
}
}
通过如下命令访问测试接口:
➜ ~ curl http://localhost:8080/user/?name/=hengboy
hello, hengboy
/user路径匹配/user/**表达式,所以我们在控制台可以看到请求日志的打印。
测试点:匹配/order/**路径
添加测试控制器类OrderController如下所示:
@RestController
@RequestMapping(value = "/order")
public class OrderController {
@PostMapping
public String submit() {
return "订单:" + UUID.randomUUID().toString() + ",提交成功.";
}
}
通过如下命令访问测试接口:
➜ ~ curl -X POST http://localhost:8080/order
订单:24a24d24-539e-4da9-9272-e68fd592313c,提交成功.
/order路径匹配/order/**表达式,所以我们在控制台也可以看到请求日志的打印。
测试点:其他路径
添加测试控制器类OtherController如下所示:
@RestController
public class OtherController {
@GetMapping(value = "/other")
public String other() {
return "this is other path";
}
}
通过如下命令访问测试接口:
➜ ~ curl http://localhost:8080/other
this is other path
由于/other路径并不匹配/user/**或者/order/**表达式,所以我们在控制台并没有看到日志的打印。
敲黑板,划重点
ApiBoot Logging支持单个或者多个路径配置来进行过滤指定路径前缀来采集日志,让日志采集不再不可控,更精准的定位到业务请求的日志采集。
审核编辑 黄昊宇
-
JAVA
+关注
关注
20文章
2997浏览量
115682 -
MySQL
+关注
关注
1文章
897浏览量
29233 -
人脸识别
+关注
关注
77文章
4117浏览量
87756
发布评论请先 登录
PADS Logic中如何去修改元件的参考前缀?
前缀和真前缀的区别分析
ApiBoot Logging Admin可视化界面管理日志教程
ApiBoot Logging使用Rest Template透传链路信息
ApiBoot Logging使用Spring Cloud Openfeign透传链路信息
ApiBoot Logging整合Spring Cloud Eureka负载均衡上报日志
ApiBootLogging整合SpringSecurity安全上报日志
ApiBoot Logging忽略路径不进行采集日志的教程
vivo大数据日志采集Agent设计实践
Spring Boot的日志框架使用
Python写入到日志文件完整代码
kernel日志写入logd介绍

修改ApiBoot Logging日志采集前缀的教程
评论