diff --git a/axzo-log-api-v2/pom.xml b/axzo-log-api-v2/pom.xml
new file mode 100644
index 0000000..9607ead
--- /dev/null
+++ b/axzo-log-api-v2/pom.xml
@@ -0,0 +1,43 @@
+
+
+ axzo-log-plat
+ cn.axzo.platform
+ 1.0.0-SNAPSHOT
+
+
+ 4.0.0
+
+ axzo-log-api-v2
+ jar
+ axzo-log-api-v2
+
+
+ UTF-8
+
+
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
+ cn.axzo.foundation
+ common-lib
+ 2.0.0-SNAPSHOT
+
+
+ org.projectlombok
+ lombok
+
+
+ com.alibaba
+ fastjson
+
+
+ javax.validation
+ validation-api
+
+
+
+
\ No newline at end of file
diff --git a/axzo-log-api-v2/src/main/java/cn/axzo/platform/api/config/LogPlatApiV2Config.java b/axzo-log-api-v2/src/main/java/cn/axzo/platform/api/config/LogPlatApiV2Config.java
new file mode 100644
index 0000000..d821fa9
--- /dev/null
+++ b/axzo-log-api-v2/src/main/java/cn/axzo/platform/api/config/LogPlatApiV2Config.java
@@ -0,0 +1,14 @@
+package cn.axzo.platform.api.config;
+
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author : zhanghonghao@axzo.cn
+ * @since : 2024/12/10
+ */
+@Configuration
+@EnableFeignClients(basePackages = "cn.axzo.platform.api.**.feign")
+public class LogPlatApiV2Config {
+
+}
\ No newline at end of file
diff --git a/axzo-log-api-v2/src/main/java/cn/axzo/platform/api/log/feign/LogV2Api.java b/axzo-log-api-v2/src/main/java/cn/axzo/platform/api/log/feign/LogV2Api.java
new file mode 100644
index 0000000..7a5f2b6
--- /dev/null
+++ b/axzo-log-api-v2/src/main/java/cn/axzo/platform/api/log/feign/LogV2Api.java
@@ -0,0 +1,37 @@
+package cn.axzo.platform.api.log.feign;
+
+import cn.axzo.foundation.result.ApiResult;
+import cn.axzo.platform.api.log.req.LogAddV2Req;
+import cn.axzo.platform.api.log.req.LogBatchAddV2Req;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+@FeignClient(
+ value = "log-plat",
+ url = "${axzo.service.log-plat:http://log-plat:8080}"
+)
+public interface LogV2Api {
+
+ /**
+ * 添加日志
+ *
+ * @param req 日志信息 {@link LogAddV2Req}
+ * @return 日志id
+ */
+ @PostMapping(value = "/api/log/add/v2", consumes = "application/json")
+ ApiResult addLog(@RequestBody @Validated LogAddV2Req req);
+
+ /**
+ * 批量添加日志
+ *
+ * @param req 日志列表 {@link LogBatchAddV2Req}
+ * @return 日志id列表
+ */
+ @PostMapping(value = "/api/log/add/batch/v2", consumes = "application/json")
+ ApiResult> batchAddLogs(@RequestBody @Validated LogBatchAddV2Req req);
+
+}
\ No newline at end of file
diff --git a/axzo-log-api-v2/src/main/java/cn/axzo/platform/api/log/req/LogAddV2Req.java b/axzo-log-api-v2/src/main/java/cn/axzo/platform/api/log/req/LogAddV2Req.java
new file mode 100644
index 0000000..31eaa79
--- /dev/null
+++ b/axzo-log-api-v2/src/main/java/cn/axzo/platform/api/log/req/LogAddV2Req.java
@@ -0,0 +1,45 @@
+package cn.axzo.platform.api.log.req;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+import java.util.List;
+
+/**
+ * 新增日志请求参数
+ *
+ * @author chenwenjian
+ * @version 1.0
+ * @date 2024/9/11 10:51
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class LogAddV2Req {
+
+ /**
+ * 场景
+ */
+ @NotBlank(message = "scene is required")
+ private String scene;
+
+ /**
+ * 日志级别, DEBUG, INFO, WARN, ERROR
+ */
+ @NotBlank(message = "level is required")
+ private String level;
+
+ /**
+ * 日志标签,建议可以将服务名称、操作等信息作为tag
+ */
+ private List tags;
+
+ /**
+ * 日志内容,需要是json格式
+ */
+ private String message;
+}
diff --git a/axzo-log-api-v2/src/main/java/cn/axzo/platform/api/log/req/LogBatchAddV2Req.java b/axzo-log-api-v2/src/main/java/cn/axzo/platform/api/log/req/LogBatchAddV2Req.java
new file mode 100644
index 0000000..343dcd1
--- /dev/null
+++ b/axzo-log-api-v2/src/main/java/cn/axzo/platform/api/log/req/LogBatchAddV2Req.java
@@ -0,0 +1,26 @@
+package cn.axzo.platform.api.log.req;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * @author chenwenjian
+ * @version 1.0
+ * @date 2024/9/12 10:56
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class LogBatchAddV2Req {
+
+ @NotEmpty(message = "logs is required")
+ @Valid
+ private List logs;
+}
diff --git a/axzo-log-api-v2/src/main/resources/META-INF/spring.factories b/axzo-log-api-v2/src/main/resources/META-INF/spring.factories
new file mode 100644
index 0000000..c04d2b7
--- /dev/null
+++ b/axzo-log-api-v2/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,2 @@
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+cn.axzo.platform.api.config.LogPlatApiV2Config
\ No newline at end of file
diff --git a/axzo-log-api/pom.xml b/axzo-log-api/pom.xml
index 4f4ca9e..fa61953 100644
--- a/axzo-log-api/pom.xml
+++ b/axzo-log-api/pom.xml
@@ -5,6 +5,7 @@
cn.axzo.platform
1.0.0-SNAPSHOT
+
4.0.0
axzo-log-api
diff --git a/axzo-log-server/pom.xml b/axzo-log-server/pom.xml
index e01a9ca..c597ffa 100644
--- a/axzo-log-server/pom.xml
+++ b/axzo-log-server/pom.xml
@@ -74,7 +74,6 @@
runtime
-
com.baomidou
mybatis-plus-boot-starter
@@ -113,11 +112,6 @@
maokai-api
-
-
cn.axzo.apollo
apollo-workspace-api
@@ -173,7 +167,12 @@
graphql-java-tools
5.2.4
-
+
+ cn.axzo.platform
+ axzo-log-api-v2
+ 1.0.0-SNAPSHOT
+ compile
+
diff --git a/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/v2/LogV2ApiController.java b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/v2/LogV2ApiController.java
new file mode 100644
index 0000000..3e67652
--- /dev/null
+++ b/axzo-log-server/src/main/java/cn/axzo/log/platform/server/controller/api/v2/LogV2ApiController.java
@@ -0,0 +1,39 @@
+package cn.axzo.log.platform.server.controller.api.v2;
+
+import cn.axzo.foundation.result.ApiResult;
+import cn.axzo.log.platform.client.model.req.LogAddReq;
+import cn.axzo.log.platform.client.model.req.LogBatchAddReq;
+import cn.axzo.log.platform.server.service.LogService;
+import cn.axzo.platform.api.log.feign.LogV2Api;
+import cn.axzo.platform.api.log.req.LogAddV2Req;
+import cn.axzo.platform.api.log.req.LogBatchAddV2Req;
+import cn.hutool.core.bean.BeanUtil;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * @author : zhanghonghao@axzo.cn
+ * @since : 2024/12/13
+ */
+@RestController
+@RequiredArgsConstructor
+public class LogV2ApiController implements LogV2Api {
+
+ private final LogService logService;
+
+ @Override
+ public ApiResult addLog(LogAddV2Req req) {
+ LogAddReq addReq = BeanUtil.copyProperties(req, LogAddReq.class);
+ String result = logService.addLog(addReq);
+ return ApiResult.success(result);
+ }
+
+ @Override
+ public ApiResult> batchAddLogs(LogBatchAddV2Req req) {
+ LogBatchAddReq addReq = BeanUtil.copyProperties(req, LogBatchAddReq.class);
+ List resultList = logService.batchAddLogs(addReq);
+ return ApiResult.success(resultList);
+ }
+}
diff --git a/pom.xml b/pom.xml
index 969a665..ac3a29d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,6 +15,7 @@
axzo-log-server
axzo-log-api
+ axzo-log-api-v2
pom