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