feat: 系统日志新增 traceId 链路号记录,方便查看完整日志链路
This commit is contained in:
parent
b5d668e014
commit
860ca403c2
@ -16,12 +16,12 @@
|
||||
|
||||
package top.charles7c.continew.admin.common.config.tlog;
|
||||
|
||||
import com.yomahub.tlog.constant.TLogConstants;
|
||||
import com.yomahub.tlog.context.TLogContext;
|
||||
import jakarta.servlet.*;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.springframework.stereotype.Component;
|
||||
import top.charles7c.continew.admin.common.constant.SysConstants;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@ -47,7 +47,7 @@ public class TLogServletFilter implements Filter {
|
||||
try {
|
||||
TLogWebCommon.loadInstance().preHandle(httpServletRequest);
|
||||
// 把 traceId 放入 response 的 header,为了方便有些人有这样的需求,从前端拿整条链路的 traceId
|
||||
httpServletResponse.addHeader(TLogConstants.TLOG_TRACE_KEY, TLogContext.getTraceId());
|
||||
httpServletResponse.addHeader(SysConstants.TRACE_ID, TLogContext.getTraceId());
|
||||
chain.doFilter(request, response);
|
||||
return;
|
||||
} finally {
|
||||
|
@ -17,6 +17,7 @@
|
||||
package top.charles7c.continew.admin.common.config.tlog;
|
||||
|
||||
import com.yomahub.tlog.id.TLogIdGenerator;
|
||||
import com.yomahub.tlog.id.snowflake.UniqueIdGenerator;
|
||||
|
||||
/**
|
||||
* TLog ID 自定义生成器
|
||||
@ -28,6 +29,6 @@ import com.yomahub.tlog.id.TLogIdGenerator;
|
||||
public class TraceIdGenerator extends TLogIdGenerator {
|
||||
@Override
|
||||
public String generateTraceId() {
|
||||
return String.valueOf(System.nanoTime());
|
||||
return String.valueOf(UniqueIdGenerator.generateId());
|
||||
}
|
||||
}
|
@ -68,4 +68,9 @@ public class SysConstants {
|
||||
* 描述类字段后缀
|
||||
*/
|
||||
public static final String DESCRIPTION_FIELD_SUFFIX = "String";
|
||||
|
||||
/**
|
||||
* Trace ID
|
||||
*/
|
||||
public static final String TRACE_ID = "traceId";
|
||||
}
|
||||
|
@ -33,12 +33,12 @@ import top.charles7c.continew.admin.monitor.mapper.LogMapper;
|
||||
import top.charles7c.continew.admin.monitor.model.entity.LogDO;
|
||||
import top.charles7c.continew.admin.system.service.UserService;
|
||||
import top.charles7c.continew.starter.core.constant.StringConstants;
|
||||
import top.charles7c.continew.starter.web.model.R;
|
||||
import top.charles7c.continew.starter.core.util.ExceptionUtils;
|
||||
import top.charles7c.continew.starter.log.common.dao.LogDao;
|
||||
import top.charles7c.continew.starter.log.common.model.LogRecord;
|
||||
import top.charles7c.continew.starter.log.common.model.LogRequest;
|
||||
import top.charles7c.continew.starter.log.common.model.LogResponse;
|
||||
import top.charles7c.continew.starter.web.model.R;
|
||||
|
||||
import java.net.URI;
|
||||
import java.time.LocalDateTime;
|
||||
@ -86,7 +86,9 @@ public class LogDaoLocalImpl implements LogDao {
|
||||
LogResponse logResponse = logRecord.getResponse();
|
||||
Integer statusCode = logResponse.getStatus();
|
||||
logDO.setStatusCode(statusCode);
|
||||
logDO.setResponseHeaders(JSONUtil.toJsonStr(logResponse.getHeaders()));
|
||||
Map<String, String> responseHeaders = logResponse.getHeaders();
|
||||
logDO.setResponseHeaders(JSONUtil.toJsonStr(responseHeaders));
|
||||
logDO.setTraceId(responseHeaders.get(SysConstants.TRACE_ID));
|
||||
String responseBody = logResponse.getBody();
|
||||
logDO.setResponseBody(responseBody);
|
||||
// 状态
|
||||
|
@ -16,17 +16,15 @@
|
||||
|
||||
package top.charles7c.continew.admin.monitor.model.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import top.charles7c.continew.admin.monitor.enums.LogStatusEnum;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
|
||||
import top.charles7c.continew.admin.monitor.enums.LogStatusEnum;
|
||||
|
||||
/**
|
||||
* 系统日志实体
|
||||
*
|
||||
@ -46,6 +44,11 @@ public class LogDO implements Serializable {
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 链路 ID
|
||||
*/
|
||||
private String traceId;
|
||||
|
||||
/**
|
||||
* 日志描述
|
||||
*/
|
||||
|
@ -16,22 +16,18 @@
|
||||
|
||||
package top.charles7c.continew.admin.monitor.model.query;
|
||||
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import top.charles7c.continew.starter.data.mybatis.plus.query.Query;
|
||||
import top.charles7c.continew.starter.data.mybatis.plus.query.QueryType;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
|
||||
import top.charles7c.continew.starter.data.mybatis.plus.query.Query;
|
||||
import top.charles7c.continew.starter.data.mybatis.plus.query.QueryType;
|
||||
|
||||
/**
|
||||
* 系统日志查询条件
|
||||
*
|
||||
@ -45,6 +41,12 @@ public class SystemLogQuery implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 链路 ID
|
||||
*/
|
||||
@Schema(description = "链路 ID", example = "904846526308876288")
|
||||
private String traceId;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
|
@ -16,11 +16,10 @@
|
||||
|
||||
package top.charles7c.continew.admin.monitor.model.resp;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 系统日志详情信息
|
||||
@ -35,6 +34,12 @@ public class SystemLogDetailResp extends LogResp {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 链路 ID
|
||||
*/
|
||||
@Schema(description = "链路 ID", example = "904846526308876288")
|
||||
private String traceId;
|
||||
|
||||
/**
|
||||
* 状态码
|
||||
*/
|
||||
|
@ -28,4 +28,10 @@ databaseChangeLog:
|
||||
- include:
|
||||
file: db/changelog/v2.2.0/continew-admin_column.sql
|
||||
- include:
|
||||
file: db/changelog/v2.2.0/continew-admin_data.sql
|
||||
file: db/changelog/v2.2.0/continew-admin_data.sql
|
||||
- include:
|
||||
file: db/changelog/v2.4.0/continew-admin_table.sql
|
||||
- include:
|
||||
file: db/changelog/v2.4.0/continew-admin_column.sql
|
||||
- include:
|
||||
file: db/changelog/v2.4.0/continew-admin_data.sql
|
@ -0,0 +1,4 @@
|
||||
-- liquibase formatted sql
|
||||
|
||||
-- changeset Charles7c:1
|
||||
ALTER TABLE `sys_log` ADD COLUMN `trace_id` varchar(255) NULL COMMENT '链路ID' AFTER `id`;
|
@ -0,0 +1 @@
|
||||
-- liquibase formatted sql
|
@ -0,0 +1 @@
|
||||
-- liquibase formatted sql
|
Loading…
Reference in New Issue
Block a user