AE86 5 سال پیش
والد
کامیت
3672363db3

+ 1 - 2
dbsyncer-biz/src/main/java/org/dbsyncer/biz/MonitorService.java

@@ -62,9 +62,8 @@ public interface MonitorService {
     /**
      * 清空操作日志
      *
-     * @param id
      * @return
      */
-    String clearLog(String type);
+    String clearLog();
 
 }

+ 3 - 3
dbsyncer-biz/src/main/java/org/dbsyncer/biz/checker/impl/connector/ConnectorChecker.java

@@ -7,8 +7,8 @@ import org.dbsyncer.common.util.StringUtil;
 import org.dbsyncer.connector.config.ConnectorConfig;
 import org.dbsyncer.connector.enums.ConnectorEnum;
 import org.dbsyncer.manager.Manager;
-import org.dbsyncer.manager.logger.LogService;
-import org.dbsyncer.parser.enums.ErrorEnum;
+import org.dbsyncer.parser.logger.LogService;
+import org.dbsyncer.parser.logger.LogType;
 import org.dbsyncer.parser.model.ConfigModel;
 import org.dbsyncer.parser.model.Connector;
 import org.dbsyncer.storage.constant.ConfigConstant;
@@ -116,7 +116,7 @@ public class ConnectorChecker extends AbstractChecker implements ApplicationCont
         // 获取表信息
         boolean alive = manager.alive(connector.getConfig());
         if(!alive){
-            logService.log(ErrorEnum.CONNECT_FAILED);
+            logService.log(LogType.ConnectorLog.FAILED);
         }
         Assert.isTrue(alive, "无法连接.");
         List<String> table = manager.getTable(connector.getConfig());

+ 20 - 6
dbsyncer-biz/src/main/java/org/dbsyncer/biz/impl/MappingServiceImpl.java

@@ -7,10 +7,10 @@ import org.dbsyncer.biz.vo.ConnectorVo;
 import org.dbsyncer.biz.vo.MappingVo;
 import org.dbsyncer.biz.vo.MetaVo;
 import org.dbsyncer.common.util.CollectionUtils;
-import org.dbsyncer.manager.logger.LogService;
+import org.dbsyncer.parser.logger.LogService;
 import org.dbsyncer.monitor.Monitor;
-import org.dbsyncer.parser.enums.ErrorEnum;
 import org.dbsyncer.parser.enums.ModelEnum;
+import org.dbsyncer.parser.logger.LogType;
 import org.dbsyncer.parser.model.*;
 import org.dbsyncer.storage.constant.ConfigConstant;
 import org.slf4j.Logger;
@@ -64,18 +64,25 @@ public class MappingServiceImpl extends BaseServiceImpl implements MappingServic
     @Override
     public String remove(String id) {
         Mapping mapping = assertMappingExist(id);
+        String metaId = mapping.getMetaId();
         synchronized (LOCK) {
-            assertRunning(mapping.getMetaId());
+            assertRunning(metaId);
 
+            // 删除数据
+            manager.clearData(metaId);
+            
             // 删除meta
-            manager.removeMeta(mapping.getMetaId());
+            manager.removeMeta(metaId);
 
             // 删除tableGroup
             List<TableGroup> groupList = manager.getTableGroupAll(id);
             if (!CollectionUtils.isEmpty(groupList)) {
                 groupList.forEach(t -> manager.removeTableGroup(t.getId()));
             }
+
+            // 删除驱动
             manager.removeMapping(id);
+            log(mapping, LogType.MappingLog.DELETE);
         }
         return "驱动删除成功";
     }
@@ -111,7 +118,7 @@ public class MappingServiceImpl extends BaseServiceImpl implements MappingServic
 
             manager.start(mapping);
 
-            logService.log(ErrorEnum.RUNNING, String.format("%s:%s", ErrorEnum.RUNNING.getMessage(), mapping.getName()));
+            log(mapping, LogType.MappingLog.RUNNING);
         }
         return "驱动启动成功";
     }
@@ -124,11 +131,18 @@ public class MappingServiceImpl extends BaseServiceImpl implements MappingServic
                 throw new BizException("驱动已停止.");
             }
             manager.close(mapping);
-            logService.log(ErrorEnum.STOPPING, String.format("%s:%s", ErrorEnum.STOPPING.getMessage(), mapping.getName()));
+
+            log(mapping, LogType.MappingLog.STOP);
         }
         return "驱动停止成功";
     }
 
+    private void log(Mapping mapping, LogType logType) {
+        String model = ModelEnum.getModelEnum(mapping.getModel()).getName();
+        String msg = String.format("%s:%s(%s)", logType.getMessage(), mapping.getName(), model);
+        logService.log(logType, msg);
+    }
+
     private MappingVo convertMapping2Vo(Mapping mapping) {
         String model = mapping.getModel();
         Assert.notNull(mapping, "Mapping can not be null.");

+ 2 - 2
dbsyncer-biz/src/main/java/org/dbsyncer/biz/impl/MonitorServiceImpl.java

@@ -105,8 +105,8 @@ public class MonitorServiceImpl implements MonitorService {
     }
 
     @Override
-    public String clearLog(String type) {
-        manager.clearLog(type);
+    public String clearLog() {
+        manager.clearLog();
         return "清空日志成功";
     }
 

+ 1 - 1
dbsyncer-manager/src/main/java/org/dbsyncer/manager/Manager.java

@@ -83,7 +83,7 @@ public interface Manager extends Executor {
     // Log
     List<Map> queryLog(String type, int pageNum, int pageSize);
 
-    void clearLog(String type);
+    void clearLog();
 
     // ConnectorEnum
     List<ConnectorEnum> getConnectorEnumAll();

+ 2 - 2
dbsyncer-manager/src/main/java/org/dbsyncer/manager/ManagerFactory.java

@@ -220,8 +220,8 @@ public class ManagerFactory implements Manager, ApplicationContextAware, Applica
     }
 
     @Override
-    public void clearLog(String type) {
-        dataTemplate.clear(StorageEnum.LOG, type);
+    public void clearLog() {
+        dataTemplate.clear(StorageEnum.LOG, null);
     }
 
     @Override

+ 15 - 0
dbsyncer-parser/src/main/java/org/dbsyncer/parser/logger/LogService.java

@@ -0,0 +1,15 @@
+package org.dbsyncer.parser.logger;
+
+/**
+ * @version 1.0.0
+ * @Author AE86
+ * @Date 2020-05-21 23:18
+ */
+public interface LogService {
+
+    void log(String msg);
+
+    void log(LogType logType);
+
+    void log(LogType logType, String msg);
+}

+ 32 - 0
dbsyncer-parser/src/main/java/org/dbsyncer/parser/logger/LogServiceImpl.java

@@ -0,0 +1,32 @@
+package org.dbsyncer.parser.logger;
+
+import org.dbsyncer.parser.flush.FlushService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * @version 1.0.0
+ * @Author AE86
+ * @Date 2020-05-21 23:18
+ */
+@Component
+public class LogServiceImpl implements LogService {
+
+    @Autowired
+    private FlushService flushService;
+
+    @Override
+    public void log(String msg) {
+        flushService.asyncWrite(LogType.SystemLog.INFO.getType(), msg);
+    }
+
+    @Override
+    public void log(LogType logType) {
+        flushService.asyncWrite(logType.getType(), logType.getMessage());
+    }
+
+    @Override
+    public void log(LogType logType, String msg) {
+        flushService.asyncWrite(logType.getType(), msg);
+    }
+}

+ 205 - 0
dbsyncer-parser/src/main/java/org/dbsyncer/parser/logger/LogType.java

@@ -0,0 +1,205 @@
+package org.dbsyncer.parser.logger;
+
+/**
+ * 日志类型枚举
+ *
+ * @author AE86
+ * @version 1.0.0
+ * @date 2020/04/21 16:19
+ */
+public interface LogType {
+
+    /**
+     * 分类名称
+     *
+     * @return
+     */
+    String getTypeName();
+
+    /**
+     * 类型
+     *
+     * @return
+     */
+    String getType();
+
+    /**
+     * 内容
+     *
+     * @return
+     */
+    String getMessage();
+
+    /**
+     * 系统日志1
+     */
+    enum SystemLog implements LogType {
+        /**
+         * 正常
+         */
+        INFO("10", "正常"),
+        /**
+         * 警告
+         */
+        WARN("11", "警告"),
+        /**
+         * 错误
+         */
+        ERROR("12", "错误");
+
+        private String type;
+        private String message;
+
+        SystemLog(String type, String message) {
+            this.type = type;
+            this.message = message;
+        }
+
+        @Override
+        public String getTypeName() {
+            return "系统日志";
+        }
+
+        @Override
+        public String getType() {
+            return type;
+        }
+
+        @Override
+        public String getMessage() {
+            return message;
+        }
+    }
+
+    /**
+     * 连接器2
+     */
+    enum ConnectorLog implements LogType {
+        INSERT("20", "新增"),
+        UPDATE("21", "修改"),
+        DELETE("22", "删除"),
+        FAILED("23", "连接失败");
+
+        private String type;
+        private String message;
+
+        ConnectorLog(String type, String message) {
+            this.type = type;
+            this.message = message;
+        }
+
+        @Override
+        public String getTypeName() {
+            return "连接器";
+        }
+
+        @Override
+        public String getType() {
+            return type;
+        }
+
+        @Override
+        public String getMessage() {
+            return message;
+        }
+    }
+
+    /**
+     * 驱动3
+     */
+    enum MappingLog implements LogType {
+        INSERT("30", "新增"),
+        UPDATE("31", "修改"),
+        DELETE("32", "删除"),
+        RUNNING("33", "启动"),
+        STOP("34", "停止");
+
+        private String type;
+        private String message;
+
+        MappingLog(String type, String message) {
+            this.type = type;
+            this.message = message;
+        }
+
+        @Override
+        public String getTypeName() {
+            return "驱动";
+        }
+
+        @Override
+        public String getType() {
+            return type;
+        }
+
+        @Override
+        public String getMessage() {
+            return message;
+        }
+    }
+
+    /**
+     * 映射关系4
+     */
+    enum TableGroupLog implements LogType {
+        INSERT("40", "新增"),
+        UPDATE("41", "修改"),
+        DELETE("42", "删除");
+
+        private String type;
+        private String message;
+
+        TableGroupLog(String type, String message) {
+            this.type = type;
+            this.message = message;
+        }
+
+        @Override
+        public String getTypeName() {
+            return "映射关系";
+        }
+
+        @Override
+        public String getType() {
+            return type;
+        }
+
+        @Override
+        public String getMessage() {
+            return message;
+        }
+    }
+
+    /**
+     * 元信息5
+     */
+    enum MetaLog implements LogType {
+        UPDATE("41", "修改"),
+        DELETE("42", "删除"),
+        CLEAR("43", "删除数据");
+
+        private String type;
+        private String message;
+
+        MetaLog(String type, String message) {
+            this.type = type;
+            this.message = message;
+        }
+
+        @Override
+        public String getTypeName() {
+            return "元信息";
+        }
+
+        @Override
+        public String getType() {
+            return type;
+        }
+
+        @Override
+        public String getMessage() {
+            return message;
+        }
+    }
+
+}

+ 2 - 2
dbsyncer-web/src/main/java/org/dbsyncer/web/controller/monitor/MonitorController.java

@@ -73,9 +73,9 @@ public class MonitorController extends BaseController {
 
     @GetMapping("/clearLog")
     @ResponseBody
-    public RestResult clearLog(@RequestParam(value = "type") String type) {
+    public RestResult clearLog() {
         try {
-            return RestResult.restSuccess(monitorService.clearLog(type));
+            return RestResult.restSuccess(monitorService.clearLog());
         } catch (Exception e) {
             logger.error(e.getLocalizedMessage(), e.getClass());
             return RestResult.restFail(e.getMessage());

+ 2 - 1
dbsyncer-web/src/main/resources/static/js/monitor/index.js

@@ -19,10 +19,11 @@ $(function () {
     // 查看详细数据
     $(".metaDataList .queryData").click(function () {
         var json = $(this).attr("json");
+        var html = '<div class="row driver_break_word">'+json+'</div>';
         BootstrapDialog.show({
             title: "注意信息安全",
             type: BootstrapDialog.TYPE_INFO,
-            message: json,
+            message: html,
             size: BootstrapDialog.SIZE_NORMAL,
             buttons: [{
                 label: "取消",