前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >修改ApiBoot Logging日志采集的路径前缀

修改ApiBoot Logging日志采集的路径前缀

作者头像
恒宇少年
发布2019-10-29 17:23:10
6560
发布2019-10-29 17:23:10
举报

ApiBoot Logging支持指定单个或者多个路径的前缀进行采集,也就是我们可以指定/user/**或者/order/**下的单个或者同时指定多个路径进行采集请求日志,其他不符合Ant表达式的路径就会被忽略掉。

创建示例项目

使用idea创建SpringBoot项目。

添加ApiBoot Logging依赖

创建项目后在pom.xml配置文件内添加依赖如下所示:

代码语言:javascript
复制
<dependencies>
  <!--Web-->
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
  </dependency>
  <!--ApiBoot Logging-->
  <dependency>
    <groupId>org.minbox.framework</groupId>
    <artifactId>api-boot-starter-logging</artifactId>
  </dependency>
</dependencies>
<!--ApiBoot版本依赖-->
<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.minbox.framework</groupId>
      <artifactId>api-boot-dependencies</artifactId>
      <version>2.1.4.RELEASE</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
  </dependencies>
</dependencyManagement>

默认拦截路径

ApiBoot Logging默认的拦截路径是/**,可以访问org.minbox.framework.api.boot.autoconfigure.logging.ApiBootLoggingProperties属性配置类查看源码。

配置采集拦截器前缀

ApiBoot Logging提供了在application.yml配置文件内修改的配置参数api.boot.logging.logging-path-prefix,该配置参数接收的类型为java.lang.String[],所以我们可以使用,逗号隔开配置多个路径,如下所示:

代码语言:javascript
复制
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的功能,如下所示:

代码语言:javascript
复制
/**
 * 入口类
 *
 * @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如下所示:

代码语言:javascript
复制
@RestController
@RequestMapping(value = "/user")
public class UserController {
    /**
     * 测试日志拦截路径接口
     *
     * @param name
     * @return
     */
    @GetMapping
    public String welcome(@RequestParam("name") String name) {
        return "hello, " + name;
    }
}

通过如下命令访问测试接口:

代码语言:javascript
复制
➜ ~ curl http://localhost:8080/user\?name\=hengboy
hello, hengboy

/user路径匹配/user/**表达式,所以我们在控制台可以看到请求日志的打印

测试点:匹配/order/**路径

添加测试控制器类OrderController如下所示:

代码语言:javascript
复制
@RestController
@RequestMapping(value = "/order")
public class OrderController {

    @PostMapping
    public String submit() {
        return "订单:" + UUID.randomUUID().toString() + ",提交成功.";
    }
}

通过如下命令访问测试接口:

代码语言:javascript
复制
➜ ~ curl -X POST http://localhost:8080/order       
订单:24a24d24-539e-4da9-9272-e68fd592313c,提交成功.

/order路径匹配/order/**表达式,所以我们在控制台也可以看到请求日志的打印

测试点:其他路径

添加测试控制器类OtherController如下所示:

代码语言:javascript
复制
@RestController
public class OtherController {

    @GetMapping(value = "/other")
    public String other() {
        return "this is other path";
    }
}

通过如下命令访问测试接口:

代码语言:javascript
复制
➜ ~ curl http://localhost:8080/other         
this is other path

由于/other路径并不匹配/user/**或者/order/**表达式,所以我们在控制台并没有看到日志的打印

敲黑板,划重点

ApiBoot Logging支持单个或者多个路径配置来进行过滤指定路径前缀来采集日志,让日志采集不再不可控,更精准的定位到业务请求的日志采集。

本章源码

本篇文章示例源码可以通过以下途径获取,目录为SpringBoot2.x/modify-apiboot-logging-collection-prefix

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.10.28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建示例项目
    • 添加ApiBoot Logging依赖
      • 默认拦截路径
        • 配置采集拦截器前缀
          • 启用ApiBoot Logging Client
          • 运行测试
            • 测试点:匹配/user/**路径
              • 测试点:匹配/order/**路径
                • 测试点:其他路径
                • 敲黑板,划重点
                • 本章源码
                相关产品与服务
                日志服务
                日志服务(Cloud Log Service,CLS)是腾讯云提供的一站式日志服务平台,提供了从日志采集、日志存储到日志检索,图表分析、监控告警、日志投递等多项服务,协助用户通过日志来解决业务运维、服务监控、日志审计等场景问题。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档