AE86 5 years ago
parent
commit
b6252cb27f

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

@@ -7,6 +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.model.ConfigModel;
 import org.dbsyncer.parser.model.Connector;
 import org.dbsyncer.storage.constant.ConfigConstant;
@@ -35,6 +37,9 @@ public class ConnectorChecker extends AbstractChecker implements ApplicationCont
     @Autowired
     private Manager manager;
 
+    @Autowired
+    private LogService logService;
+
     private Map<String, ConnectorConfigChecker> map;
 
     @Override
@@ -110,6 +115,9 @@ public class ConnectorChecker extends AbstractChecker implements ApplicationCont
     private void setTable(Connector connector) {
         // 获取表信息
         boolean alive = manager.alive(connector.getConfig());
+        if(!alive){
+            logService.log(ErrorEnum.CONNECT_FAILED);
+        }
         Assert.isTrue(alive, "无法连接.");
         List<String> table = manager.getTable(connector.getConfig());
         connector.setTable(table);

+ 8 - 0
dbsyncer-biz/src/main/java/org/dbsyncer/biz/impl/MappingServiceImpl.java

@@ -7,7 +7,9 @@ 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.monitor.Monitor;
+import org.dbsyncer.parser.enums.ErrorEnum;
 import org.dbsyncer.parser.enums.ModelEnum;
 import org.dbsyncer.parser.model.*;
 import org.dbsyncer.storage.constant.ConfigConstant;
@@ -39,6 +41,9 @@ public class MappingServiceImpl extends BaseServiceImpl implements MappingServic
     @Autowired
     private Checker mappingChecker;
 
+    @Autowired
+    private LogService logService;
+
     @Override
     public String add(Map<String, String> params) {
         ConfigModel model = mappingChecker.checkAddConfigModel(params);
@@ -105,6 +110,8 @@ public class MappingServiceImpl extends BaseServiceImpl implements MappingServic
             manager.editMeta(meta);
 
             manager.start(mapping);
+
+            logService.log(ErrorEnum.RUNNING, String.format("%s:%s", ErrorEnum.RUNNING.getMessage(), mapping.getName()));
         }
         return "驱动启动成功";
     }
@@ -117,6 +124,7 @@ 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()));
         }
         return "驱动停止成功";
     }

+ 1 - 1
dbsyncer-connector/src/main/java/org/dbsyncer/connector/database/AbstractDatabaseConnector.java

@@ -256,7 +256,7 @@ public abstract class AbstractDatabaseConnector implements Database {
                 }
             });
             if (0 == update) {
-                throw new ConnectorException(String.format("执行%s操作失败:%s", event, data));
+                throw new ConnectorException(String.format("执行%s操作失败", event));
             }
         } catch (Exception e) {
             // 记录错误数据

+ 17 - 0
dbsyncer-manager/src/main/java/org/dbsyncer/manager/logger/LogService.java

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

+ 33 - 0
dbsyncer-manager/src/main/java/org/dbsyncer/manager/logger/LogServiceImpl.java

@@ -0,0 +1,33 @@
+package org.dbsyncer.manager.logger;
+
+import org.dbsyncer.parser.enums.ErrorEnum;
+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("0", msg);
+    }
+
+    @Override
+    public void log(ErrorEnum error) {
+        flushService.asyncWrite(error.getType(), error.getMessage());
+    }
+
+    @Override
+    public void log(ErrorEnum error, String msg) {
+        flushService.asyncWrite(error.getType(), msg);
+    }
+}

+ 33 - 0
dbsyncer-parser/src/main/java/org/dbsyncer/parser/enums/ErrorEnum.java

@@ -0,0 +1,33 @@
+package org.dbsyncer.parser.enums;
+
+/**
+ * 错误日志枚举
+ *
+ * @author AE86
+ * @version 1.0.0
+ * @date 2020/04/21 16:19
+ */
+public enum ErrorEnum {
+
+    SYSTEM("0", "系统日志"),
+    CONNECT_FAILED("1", "连接器连接失败"),
+    RUNNING("2", "启动驱动"),
+    STOPPING("3", "停止驱动");
+
+    private String type;
+    private String message;
+
+    ErrorEnum(String type, String message) {
+        this.type = type;
+        this.message = message;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+}

+ 1 - 1
dbsyncer-parser/src/main/java/org/dbsyncer/parser/flush/FlushServiceImpl.java

@@ -36,7 +36,7 @@ public class FlushServiceImpl implements FlushService {
     @Override
     public void asyncWrite(String type, String error) {
         Map<String, Object> params = new HashMap();
-        params.put(ConfigConstant.CONFIG_MODEL_ID, snowflakeIdWorker.nextId());
+        params.put(ConfigConstant.CONFIG_MODEL_ID, String.valueOf(snowflakeIdWorker.nextId()));
         params.put(ConfigConstant.CONFIG_MODEL_TYPE, type);
         params.put(ConfigConstant.CONFIG_MODEL_JSON, error);
         params.put(ConfigConstant.CONFIG_MODEL_CREATE_TIME, System.currentTimeMillis());

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

@@ -29,9 +29,10 @@ public class MonitorController extends BaseController {
     public String index(HttpServletRequest request, ModelMap model) {
         Map<String, String> params = getParams(request);
         model.put("threadInfo", monitorService.getThreadInfo());
+        model.put("metaId", monitorService.getDefaultMetaId(params));
         model.put("meta", monitorService.getMetaAll());
         model.put("data", monitorService.queryData(params));
-        model.put("metaId", monitorService.getDefaultMetaId(params));
+        model.put("log", monitorService.queryLog(params));
         return "monitor/monitor.html";
     }
 

+ 17 - 0
dbsyncer-web/src/main/resources/static/js/monitor/index.js

@@ -16,4 +16,21 @@ $(function () {
         changeMetaData($(this));
     });
 
+    // 查看详细数据
+    $(".metaDataList .queryData").click(function () {
+        var json = $(this).attr("json");
+        BootstrapDialog.show({
+            title: "注意信息安全",
+            type: BootstrapDialog.TYPE_INFO,
+            message: json,
+            size: BootstrapDialog.SIZE_NORMAL,
+            buttons: [{
+                label: "取消",
+                action: function (dialog) {
+                    dialog.close();
+                }
+            }]
+        });
+    });
+
 });

+ 8 - 3
dbsyncer-web/src/main/resources/templates/monitor/monitor.html

@@ -18,7 +18,7 @@
     </div>
 
     <!-- 数据 -->
-    <table class="table table-hover">
+    <table class="table table-hover metaDataList">
         <thead>
         <tr>
             <th style="width:3%;"></th>
@@ -38,7 +38,7 @@
                 <span th:if="${not d?.success}" class="label label-warning">失败</span>
             </td>
             <td th:text="${d?.error}"></td>
-            <td><a th:json="${d?.json}" href="javascript:;" class="label label-info">查看数据</a></td>
+            <td><a th:json="${d?.json}" href="javascript:;" class="label label-info queryData">查看数据</a></td>
         </tr>
     </table>
 
@@ -67,10 +67,15 @@
         <thead>
         <tr>
             <th>序号</th>
-            <th>信息</th>
+            <th>内容</th>
             <th>时间</th>
         </tr>
         </thead>
+        <tr th:each="l,s : ${log}">
+            <td th:text="${s.index}+1"></td>
+            <td th:text="${l?.json}"></td>
+            <td th:text="${#dates.format(l?.createTime, 'yyyy-MM-dd HH:mm:ss')}"></td>
+        </tr>
     </table>
 
 </div>