Skip to content

日志模块:HTTP Trace Pro

简介

continew-starter-log-httptrace-pro 是 ContiNew Starter 日志模块针对 Spring Boot Actuator 项目 HttpExchange(原 HttpTrace)的二开增强处理实现。

xml
<dependency>
    <groupId>top.continew</groupId>
    <artifactId>continew-starter-log-httptrace-pro</artifactId>
</dependency>

主要特性

  • 版本锁定:涉及依赖已进行版本锁定,使用时无需配置版本
  • 支持配置记录的 HTTP 请求日志内容(请求头、请求体、请求参数、IP 归属地、浏览器、操作系统、响应头、响应体、响应参数)
  • 支持启用控制台 HTTP 日志输出(类似于 Nginx access log)
  • 辅助 Spring Doc 可以实现操作日志功能
  • 支持将日志数据保存到任何数据源

配置示例

配置详情请查看:top.charles7c.continew.starter.log.httptracepro.autoconfigure.LogProperties

yaml
--- ### 日志配置
continew-starter:
  log:
    enabled: true
    # 包含信息(默认记录请求头、请求参数、响应头、响应参数)
    include:
      - DESCRIPTION
      - MODULE
      - REQUEST_HEADERS
      - REQUEST_BODY
      - IP_ADDRESS
      - BROWSER
      - OS
      - RESPONSE_HEADERS
      - RESPONSE_BODY

除了必然记录的请求方式、请求 URL 等信息外,其他记录信息支持灵活配置组合,默认记录请求头、请求参数、响应头、响应参数。

保存日志

通过实现 top.charles7c.continew.starter.log.common.dao.LogDao 日志持久层接口,重写 add 方法实现保存日志记录到任何指定数据源。

java
@RequiredArgsConstructor
public class LogDaoLocalImpl implements LogDao {

    private final XxxMapper xxxMapper;

    @Override
    public void add(LogRecord logRecord) {
        // 保存日志记录
    }
}

将自行实现的日志持久层 bean 注入到 Spring 容器中。

java
@Configuration
@ConditionalOnEnabledLog
public class LogConfiguration {

    /**
     * 日志持久层接口本地实现类
     */
    @Bean
    public LogDao logDao() {
        return new LogDaoLocalImpl();
    }
}

核心依赖

依赖描述
continew-starter-core
transmittable-thread-localTTL(线程间传递 ThreadLocal,异步执行时上下文传递的解决方案)
swagger-annotations-jakartaSwagger 注解依赖