0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子设计 来源:电子设计 作者:电子设计 2020-12-10 22:20 次阅读

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
    +关注

    关注

    19

    文章

    2966

    浏览量

    104695
  • MySQL
    +关注

    关注

    1

    文章

    804

    浏览量

    26524
  • 人脸识别
    +关注

    关注

    76

    文章

    4011

    浏览量

    81846
收藏 人收藏

    评论

    相关推荐

    2018上海云栖大会workshop-日志数据采集与分析对接

    名称加上登陆账号前缀进行区别创建logstore存储访问日志向导创建NGINX日志采集配置文件路径(/var/log)和文件名称(access_log),其中NGINX
    发表于 06-20 16:44

    Python日志logging模块简单介绍

    Python日志logging模块的使用-数据库脚本优化003
    发表于 03-05 13:46

    PADS Logic中如何去修改元件的参考前缀

      在logic中做元件库,都会给元器件定义位号的首字母,后面在绘制原理图放置元器件时,就会按这个来递增编号,常见的元器件位号首字母定义参考章节2.36,下面讲解如何修改元件的参考前缀:   第一步
    发表于 04-28 17:10

    前缀和真前缀的区别分析

    如此看来,KMP 之前缀并非前缀,而是真前缀!而大多数(几乎所有)的博客都在以 “真前缀” 去定义“前缀”。 next 数组是 KMP
    的头像 发表于 12-22 13:51 8786次阅读

    ApiBoot Logging Admin可视化界面管理日志教程

    ApiBoot Logging Admin支持界面可视化查看请求日志信息,初期版本支持查看上报日志的服务列表、最新的链路日志等功能,还可以整
    的头像 发表于 12-10 22:03 495次阅读

    ApiBoot Logging使用Rest Template透传链路信息

    在上一篇文章【ApiBoot Logging使用SpringCloud Openfeign透传链路信息】中我们详细的讲解了ApiBoot Logging整合SpringCloud通过O
    的头像 发表于 12-10 22:03 600次阅读

    ApiBoot Logging使用Spring Cloud Openfeign透传链路信息

    ApiBoot Logging可以无缝整合SpringCloud来采集请求日志,目前支持RestTemplate、Openfeign两种方式,我们本章来讲解下在使用Openfeign.
    的头像 发表于 12-10 22:05 534次阅读

    ApiBoot Logging整合Spring Cloud Eureka负载均衡上报日志

    ApiBoot Logging支持整合服务注册中心(Eureka、Consul、Nacos Discovery、Zookeeper...)进行上报请求日志Logging Client
    的头像 发表于 12-10 22:08 413次阅读

    ApiBootLogging整合SpringSecurity安全上报日志

    ApiBoot Logging在上报日志时虽然是一般通过内网的形式部署,不过安全方面还是主要依赖于服务器的安全策略(防火墙),为了提高日志上报...
    的头像 发表于 12-10 22:09 390次阅读

    ApiBoot Logging忽略路径不进行采集日志的教程

    ApiBoot Logging支持排除指定路径不参与日志采集,当我们的服务集成actuator时,会不断的重复调用内置的路径导致大量采集
    的头像 发表于 12-10 22:18 407次阅读

    minbox-logging链路日志分析框架

    gitee-minbox-logging.zip
    发表于 04-27 10:07 1次下载
    minbox-<b class='flag-5'>logging</b>链路<b class='flag-5'>日志</b>分析框架

    vivo大数据日志采集Agent设计实践

    通常,日志采集服务可以分为几个部分(业界常见的架构如下图所示):日志采集Agent组件(常见的开源采集Agent组件有Flume、Logst
    的头像 发表于 11-29 15:39 1024次阅读

    Spring Boot的日志框架使用

    目前市面上常见的日志框架有:slf4j(Simple Logging Facade for Java)、logback、log4j、log4j2、commons-logging(Spring默认
    的头像 发表于 06-02 10:59 940次阅读
    Spring Boot的<b class='flag-5'>日志</b>框架使用

    Python写入到日志文件完整代码

    ;log_file.log' ) # 设置日志格式 formatter = logging. Formatter ( '%(asctime)s - %(module)s
    的头像 发表于 10-07 11:50 1268次阅读
    Python写入到<b class='flag-5'>日志</b>文件完整代码

    kernel日志写入logd介绍

    kernel获取kernel日志,依赖于如下属性值,具体查看源码xxx/system/logging/logd/main.cpp中有体现。 2.3.3 详细总结流程 2.3.3.1 logd的日志流程
    的头像 发表于 11-23 17:11 700次阅读
    kernel<b class='flag-5'>日志</b>写入logd介绍