Selaa lähdekoodia

系统日志推送到消息网关

zhou-hao 5 vuotta sitten
vanhempi
commit
9450f4d7a9

+ 6 - 0
jetlinks-components/logging-component/pom.xml

@@ -30,5 +30,11 @@
             <groupId>ch.qos.logback</groupId>
             <artifactId>logback-classic</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.jetlinks.community</groupId>
+            <artifactId>gateway-component</artifactId>
+            <version>${project.version}</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 </project>

+ 9 - 1
jetlinks-components/logging-component/src/main/java/org/jetlinks/community/logging/event/handler/SystemLoggerEventHandler.java

@@ -1,6 +1,7 @@
 package org.jetlinks.community.logging.event.handler;
 
 import lombok.extern.slf4j.Slf4j;
+import org.jetlinks.community.gateway.MessageGateway;
 import org.jetlinks.core.metadata.types.DateTimeType;
 import org.jetlinks.core.metadata.types.ObjectType;
 import org.jetlinks.core.metadata.types.StringType;
@@ -22,11 +23,15 @@ import reactor.core.publisher.Mono;
 @Order(5)
 public class SystemLoggerEventHandler {
 
+    private final MessageGateway messageGateway;
 
     private final ElasticSearchService elasticSearchService;
 
-    public SystemLoggerEventHandler(ElasticSearchService elasticSearchService, ElasticSearchIndexManager indexManager) {
+    public SystemLoggerEventHandler(ElasticSearchService elasticSearchService,
+                                    ElasticSearchIndexManager indexManager,
+                                    MessageGateway messageGateway) {
         this.elasticSearchService = elasticSearchService;
+        this.messageGateway = messageGateway;
 
         indexManager.putIndex(
             new DefaultElasticSearchIndexMetadata(LoggerIndexProvider.SYSTEM.getIndex())
@@ -50,6 +55,9 @@ public class SystemLoggerEventHandler {
     public void acceptAccessLoggerInfo(SerializableSystemLog info) {
         elasticSearchService.commit(LoggerIndexProvider.SYSTEM, Mono.just(info))
             .subscribe();
+        messageGateway
+            .publish("/logging/system/" + info.getName().replace(".", "/") + "/" + (info.getLevel().toLowerCase()), info, true)
+            .subscribe();
     }
 
 }