/mylog

分布式链路追踪项目

Primary LanguageJava

mytool

1. 介绍

通用工具包,包含统一日志注解,统一异步注解,全链路追踪等。

涉及技术:SpringBoot, SpringCloud, OpenFeign, XXL-JOB, RocketMQ,ThreadLocal等。

2. 使用说明

  1. 导入Jar包
<dependency>
    <groupId>com.acjava</groupId>
    <artifactId>mytool-boot-starter</artifactId>
</dependency>
  1. 在需要使用日志或异步的方法上面,添加 @MyLog@MyAsync 注解即可。

同时代码里可随意使用 log.info()log.error() 等日志记录,这些记录都将携带 traceId

3. 示例

  1. 演示普通跨服务调用

输入图片说明 输入图片说明

  1. 演示 MQ

输入图片说明 MQ生产者 MQ消费者

  1. 演示 XXL_JOB

输入图片说明 输入图片说明

测试代码地址:cloud-test

4. 可配置参数

4.1 .yml 配置文件

mytool:
  my-log:
    enabled: true  # 是否使用 @MyLog 日志注解,默认值为 true

  trace:
    enabled: true  # 是否开启全链路追踪,默认值为 true
    mq: # 是否开启 mq
      rabbit:
        enabled: false
      rocket:
        enabled: false

  my-async:
    enabled: true  # 是否使用 @MyAsync 异步注解,默认值为 true
    default-pool:
      corePoolSize: 8
      maxPoolSize: 16
      keepAliveSeconds: 180
      queueCapacity: 500
      awaitTerminationSeconds: 60
      threadNamePrefix: mytool-default-pool-

4.2 .properties配置文件

# 是否使用 @MyLog 日志注解,默认值为 true
mytool.my-log.enabled=true

# 是否开启全链路追踪,默认值为 true
mytool.trace.enabled=true

# 是否开启 RabbitMQ
mytool.trace.mq.rabbit.enabled=false
# 是否开启 RocketMQ
mytool.trace.mq.rocket.enabled=false

# 是否使用 @MyAsync 异步注解,默认值为 true
mytool.my-async.enabled=true

# 配置 @MyAsync 的线程池参数
mytool.my-async.default-pool.corePoolSize=8
mytool.my-async.default-pool.maxPoolSize=16
mytool.my-async.default-pool.keepAliveSeconds=180
mytool.my-async.default-pool.queueCapacity=500
mytool.my-async.default-pool.awaitTerminationSeconds=60
mytool.my-async.default-pool.threadNamePrefix=mytool-default-pool-