Prechádzať zdrojové kódy

引入 cn.reghao.bnt.log 包中的 pojo 记录 gateway 日志和 app 日志, 同时将日志的消费端从 message-service 中删除, 移到 bnt 项目中

reghao 7 mesiacov pred
rodič
commit
e4627d0201

+ 1 - 13
log/src/main/java/cn/reghao/tnb/log/Appenders.java → common/src/main/java/cn/reghao/tnb/common/log/Appenders.java

@@ -1,4 +1,4 @@
-package cn.reghao.tnb.log;
+package cn.reghao.tnb.common.log;
 
 import ch.qos.logback.classic.LoggerContext;
 import ch.qos.logback.classic.encoder.PatternLayoutEncoder;
@@ -15,18 +15,6 @@ import org.slf4j.LoggerFactory;
 public class Appenders {
     private static final LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
 
-    public static Appender<ILoggingEvent> wsAppender(String url, String app, String host) {
-        PatternLayoutEncoder layoutEncoder = new PatternLayoutEncoder();
-        layoutEncoder.setPattern("%date %level [%thread] %logger{10} [%file:%line] %msg%n");
-        layoutEncoder.setContext(loggerContext);
-        layoutEncoder.start();
-
-        WsAppender wsAppender = new WsAppender(url, app, host);
-        wsAppender.setContext(loggerContext);
-        wsAppender.start();
-        return wsAppender;
-    }
-
     public static Appender<ILoggingEvent> fileAppender(LoggerContext loggerContext) {
         PatternLayoutEncoder layoutEncoder = new PatternLayoutEncoder();
         layoutEncoder.setPattern("%date %level [%thread] %logger{10} [%file:%line] %msg%n");

+ 1 - 1
log/src/main/java/cn/reghao/tnb/log/LoggerConfig.java → common/src/main/java/cn/reghao/tnb/common/log/LoggerConfig.java

@@ -1,4 +1,4 @@
-package cn.reghao.tnb.log;
+package cn.reghao.tnb.common.log;
 
 import ch.qos.logback.classic.Level;
 import ch.qos.logback.classic.Logger;

+ 5 - 5
content/content-service/pom.xml

@@ -18,11 +18,6 @@
     </properties>
 
     <dependencies>
-        <dependency>
-            <groupId>cn.reghao.tnb</groupId>
-            <artifactId>log</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
-        </dependency>
         <dependency>
             <groupId>cn.reghao.tnb.content</groupId>
             <artifactId>content-api</artifactId>
@@ -43,6 +38,11 @@
             <artifactId>file-api</artifactId>
             <version>1.0.0-SNAPSHOT</version>
         </dependency>
+        <dependency>
+            <groupId>cn.reghao.bnt</groupId>
+            <artifactId>log</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
+        </dependency>
 
         <dependency>
             <groupId>cn.reghao.jutil</groupId>

+ 1 - 1
content/content-service/src/main/java/cn/reghao/tnb/content/app/config/SpringLifecycle.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.content.app.config;
 
+import cn.reghao.tnb.common.log.LoggerConfig;
 import cn.reghao.tnb.content.app.util.rabbit.RabbitAppender;
-import cn.reghao.tnb.log.LoggerConfig;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.DisposableBean;
 import org.springframework.boot.ApplicationArguments;

+ 2 - 2
content/content-service/src/main/java/cn/reghao/tnb/content/app/util/rabbit/RabbitAppender.java

@@ -2,8 +2,8 @@ package cn.reghao.tnb.content.app.util.rabbit;
 
 import ch.qos.logback.classic.spi.ILoggingEvent;
 import ch.qos.logback.core.UnsynchronizedAppenderBase;
+import cn.reghao.bnt.log.AppLog;
 import cn.reghao.jutil.jdk.serializer.JsonConverter;
-import cn.reghao.tnb.content.app.util.AppLog;
 import org.springframework.amqp.rabbit.core.RabbitTemplate;
 
 /**
@@ -37,7 +37,7 @@ public class RabbitAppender extends UnsynchronizedAppenderBase<ILoggingEvent> {
         AppLog appLog = getAppLog(event);
         String jsonPayload = JsonConverter.objectToJson(appLog);
 
-        String routingKey = "tnb.log.runtime";
+        String routingKey = "tnb.log.app";
         rabbitTemplate.convertAndSend(routingKey, jsonPayload);
     }
 

+ 40 - 0
content/content-service/src/test/java/cn/reghao/tnb/content/app/vod/service/RichTextTest.java

@@ -0,0 +1,40 @@
+package cn.reghao.tnb.content.app.vod.service;
+
+import cn.reghao.jutil.jdk.converter.DateTimeConverter;
+import cn.reghao.tnb.content.app.ContentApplication;
+import cn.reghao.tnb.content.app.data.db.mongo.RichTextMongo;
+import cn.reghao.tnb.content.app.data.model.po.RichText;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.ActiveProfiles;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * @author reghao
+ * @date 2025-07-30 14:59:06
+ */
+@Slf4j
+@ActiveProfiles("dev")
+@SpringBootTest(classes = ContentApplication.class)
+public class RichTextTest {
+    @Autowired
+    RichTextMongo richTextMongo;
+    @Test
+    public void getRichTextTest() {
+        List<RichText> list2 = richTextMongo.findAll(1);
+        for (RichText richText : list2) {
+            String pageUrl = richText.getOriginalUrl();
+            String html = richText.getContent();
+            long publishAtLong = richText.getPublishAt();
+            LocalDateTime localDateTime = DateTimeConverter.localDateTime(publishAtLong);
+            String publishAtStr = DateTimeConverter.format(localDateTime);
+            if (html.contains("video")) {
+                log.info("{} {} -> {}", richText.getContentId(), publishAtStr, pageUrl);
+            }
+        }
+    }
+}

+ 6 - 0
gateway/pom.xml

@@ -17,6 +17,12 @@
     </properties>
 
     <dependencies>
+        <dependency>
+            <groupId>cn.reghao.bnt</groupId>
+            <artifactId>log</artifactId>
+            <version>1.0.0-SNAPSHOT</version>
+        </dependency>
+
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-webflux</artifactId>

+ 1 - 1
gateway/src/main/java/cn/reghao/tnb/gateway/log/GatewayLogService.java

@@ -1,6 +1,6 @@
 package cn.reghao.tnb.gateway.log;
 
-import cn.reghao.tnb.gateway.log.model.GatewayLog;
+import cn.reghao.bnt.log.GatewayLog;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.cloud.gateway.route.Route;
 import org.springframework.cloud.gateway.support.ServerWebExchangeUtils;

+ 2 - 2
gateway/src/main/java/cn/reghao/tnb/gateway/log/RabbitProducer.java

@@ -1,7 +1,7 @@
 package cn.reghao.tnb.gateway.log;
 
+import cn.reghao.bnt.log.GatewayLog;
 import cn.reghao.jutil.jdk.serializer.JsonConverter;
-import cn.reghao.tnb.gateway.log.model.GatewayLog;
 import org.springframework.amqp.rabbit.core.RabbitTemplate;
 import org.springframework.stereotype.Component;
 
@@ -11,7 +11,7 @@ import org.springframework.stereotype.Component;
  */
 @Component
 public class RabbitProducer {
-    private final String routingKey = "tnb.log.access";
+    private final String routingKey = "tnb.log.gateway";
     private final RabbitTemplate rabbitTemplate;
 
     public RabbitProducer(RabbitTemplate rabbitTemplate) {

+ 0 - 38
gateway/src/main/java/cn/reghao/tnb/gateway/log/model/GatewayLog.java

@@ -1,38 +0,0 @@
-package cn.reghao.tnb.gateway.log.model;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.Map;
-
-/**
- * @author reghao
- * @date 2024-11-20 16:40:24
- */
-@Setter
-@Getter
-public class GatewayLog {
-    private String requestId;
-    // ms
-    private long requestTime;
-    private String targetRoute;
-    private String targetService;
-    private String requestUrl;
-    private String requestMethod;
-    private Map<String, String> requestHeaders;
-    private String requestBody;
-    private String remoteAddr;
-    private int remotePort;
-    private int statusCode;
-    private Map<String, String> responseHeaders;
-    private String responseBody;
-    // ms
-    private long responseTime;
-    // ms
-    private long executeTime;
-
-    public GatewayLog() {
-        this.remoteAddr = "";
-        this.remotePort = 0;
-    }
-}

+ 0 - 38
message/message-service/src/main/java/cn/reghao/tnb/message/app/model/po/AccessLog.java

@@ -1,38 +0,0 @@
-package cn.reghao.tnb.message.app.model.po;
-
-import lombok.Getter;
-import lombok.Setter;
-
-import java.util.Map;
-
-/**
- * @author reghao
- * @date 2024-11-20 16:40:24
- */
-@Setter
-@Getter
-public class AccessLog {
-    private String requestId;
-    // ms
-    private long requestTime;
-    private String targetRoute;
-    private String targetService;
-    private String requestUrl;
-    private String requestMethod;
-    private Map<String, String> requestHeaders;
-    private String requestBody;
-    private String remoteAddr;
-    private int remotePort;
-    private int statusCode;
-    private Map<String, String> responseHeaders;
-    private String responseBody;
-    // ms
-    private long responseTime;
-    // ms
-    private long executeTime;
-
-    public AccessLog() {
-        this.remoteAddr = "";
-        this.remotePort = 0;
-    }
-}

+ 0 - 21
message/message-service/src/main/java/cn/reghao/tnb/message/app/model/po/RuntimeLog.java

@@ -1,21 +0,0 @@
-package cn.reghao.tnb.message.app.model.po;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @author reghao
- * @date 2025-07-18 11:29:36
- */
-@Setter
-@Getter
-public class RuntimeLog {
-    private String requestId;
-    private String app;
-    private String host;
-    private long timestamp;
-    private String level;
-    private String thread;
-    private String logger;
-    private String message;
-}

+ 0 - 22
message/message-service/src/main/java/cn/reghao/tnb/message/app/rabbit/listener/RabbitListeners.java

@@ -2,8 +2,6 @@ package cn.reghao.tnb.message.app.rabbit.listener;
 
 import cn.reghao.jutil.jdk.serializer.JsonConverter;
 import cn.reghao.tnb.message.api.dto.msg.BaseMessage;
-import cn.reghao.tnb.message.app.model.po.AccessLog;
-import cn.reghao.tnb.message.app.model.po.RuntimeLog;
 import cn.reghao.tnb.message.app.service.MessageConsumer;
 import cn.reghao.tnb.message.app.ws.WsConnection;
 import cn.reghao.tnb.message.app.ws.msg.ChatPayload;
@@ -71,24 +69,4 @@ public class RabbitListeners {
             e.printStackTrace();
         }
     }
-
-    @RabbitListener(bindings =@QueueBinding(
-            value = @Queue(value = "tnb.log.access", durable = "true"),
-            key = "tnb.log.access",
-            exchange = @Exchange(value = "amq.direct"))
-    )
-    public void accessLogConsumer(@Payload String msg) {
-        AccessLog accessLog = JsonConverter.jsonToObject(msg, AccessLog.class);
-        //log.info("{} -> {}", accessLog.getRequestId(), accessLog.getRequestUrl());
-    }
-
-    @RabbitListener(bindings =@QueueBinding(
-            value = @Queue(value = "tnb.log.runtime", durable = "true"),
-            key = "tnb.log.runtime",
-            exchange = @Exchange(value = "amq.direct"))
-    )
-    public void runtimeLogConsumer(@Payload String msg) {
-        RuntimeLog runtimeLog = JsonConverter.jsonToObject(msg, RuntimeLog.class);
-        //log.info("{} -> {}:{}", runtimeLog.getApp(), runtimeLog.getApp(), runtimeLog.getHost());
-    }
 }