shjung 11 месяцев назад
Родитель
Сommit
17b3e80ad8

+ 70 - 0
src/main/java/com/sig/comm/server/controller/SigCommServerController.java

@@ -0,0 +1,70 @@
+package com.sig.comm.server.controller;
+
+import com.sig.comm.server.dto.NET;
+import com.sig.comm.server.dto.RegionCenter;
+import com.sig.comm.server.repository.ApplicationRepository;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("/info")
+public class SigCommServerController {
+
+    private final ApplicationRepository repo;
+
+    @GetMapping(value = "", produces = {"application/json; charset=utf8"})
+    public String info() {
+        String sep = System.getProperty("line.separator");
+        String heading = "---------------------------------------------------------------------------------------------------------";
+
+        RegionCenter center = ApplicationRepository.center;
+
+        StringBuilder sb = new StringBuilder();
+        sb.append(heading + sep);
+        sb.append("UTIC Local Signal Communication Server" + sep);
+        sb.append(heading + sep);
+        sb.append(String.format("%s, %s",
+                center.getRegionCd(), center.getIpAddress() + sep));
+        sb.append(heading + sep);
+        sb.append(String.format("%s %-15.15s %-8.8s %-20.20s %-20.20s %-20.20s %s",
+                "---", "IP Address", "Network",
+                "Connect Time", "Disconnect Time",
+                "Last Comm Time", "Center Name") + sep);
+        sb.append(heading + sep);
+        int total = 0;
+        int onLine = 0;
+        List<String> keySet = new ArrayList<>(this.repo.getCenterMap().keySet());
+        Collections.sort(keySet);
+        for (String key : keySet) {
+            RegionCenter region = this.repo.getCenterMap().get(key);
+            if (region == null) {
+                continue;
+            }
+            total++;
+            String commStatus = "Closed";
+            if (region.getNetState().getState() != NET.CLOSED) {
+                commStatus = "Connect";
+                onLine++;
+            }
+            sb.append(String.format("%s %-15.15s %-8.8s %-20.20s %-20.20s %-20.20s %s",
+                    region.getRegionCd(), region.getIpAddress(), commStatus,
+                    region.getNetState().getConnectTimeString(), region.getNetState().getDisconnectTimeString(),
+                    region.getNetState().getLastCommTimeString(),
+                    region.getRegionNm()) + sep);
+
+        }
+        sb.append(heading + sep);
+        sb.append(String.format("Total : %d, OnLine(Connect): %d", total, onLine) + sep);
+        sb.append(heading + sep);
+        return sb.toString();
+    }
+
+
+}

+ 12 - 0
src/main/java/com/sig/comm/server/dto/NetState.java

@@ -18,6 +18,7 @@ public class NetState {
     private int retryCount;
     private Date connectTime;
     private Date disconnectTime;
+    private Date lastCommTime;
 
     public NetState() {
         init();
@@ -31,13 +32,16 @@ public class NetState {
         this.retryCount = 0;
         this.connectTime = null;
         this.disconnectTime = null;
+        this.lastCommTime = null;
     }
 
     public void setLastRecvTime() {
         this.lastRecvTime = System.currentTimeMillis();
+        this.lastCommTime = new Date();
     }
     public void setLastSendTime() {
         this.lastSendTime = System.currentTimeMillis();
+        this.lastCommTime = new Date();
     }
     public void retry() {
         this.retryCount++;
@@ -83,4 +87,12 @@ public class NetState {
         cal.setTime(this.disconnectTime);
         return (new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")).format(cal.getTime());
     }
+    public String getLastCommTimeString() {
+        if (this.lastCommTime == null) {
+            return "----/--/-- --:--:--";
+        }
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(this.lastCommTime);
+        return (new SimpleDateFormat("yyyy/MM/dd HH:mm:ss")).format(cal.getTime());
+    }
 }

+ 2 - 0
src/main/java/com/sig/comm/server/repository/ApplicationRepository.java

@@ -15,6 +15,7 @@ import com.sig.comm.server.process.dbms.DbmsData;
 import com.sig.comm.server.process.dbms.DbmsDataProcess;
 import io.netty.channel.Channel;
 import io.netty.util.AttributeKey;
+import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -26,6 +27,7 @@ import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 
 @Slf4j
+@Getter
 @Service
 @RequiredArgsConstructor
 @Transactional(rollbackFor = {Exception.class})

+ 0 - 204
src/main/java/com/sig/comm/server/xnet/server/process/protocol/SigMapCompress.java

@@ -1,204 +0,0 @@
-package com.sig.comm.server.xnet.server.process.protocol;
-
-import lombok.extern.slf4j.Slf4j;
-
-@Slf4j
-public class SigMapCompress {
-
-    public static final int MAXMAPDATASIZE = 608;
-    public static final int MAX_VAR_CNT = 40;
-
-    public static final int SP_SIZE = 19;
-    public static final int SP_MIN = 16;
-    public static final int SP_MAX = 17;
-    public static final int SP_EOP = 18;
-
-    public static final byte CODE_PED_GREEN = (byte)0x10;
-    public static final byte CODE_PED_FLASH = (byte)0x20;
-    public static final byte CODE_CAR_GREEN = (byte)0x01;
-    public static final byte CODE_PED_GINX  = (byte)0x00; /* 0b00000000 */
-    public static final byte CODE_PED_FINX  = (byte)0x01; /* 0b00000001 */
-    public static final byte CODE_CAR_GINX  = (byte)0x02; /* 0b00000010 */
-    public static final byte CODE_USER_INX  = (byte)0x03; /* 0b00000011 */
-
-    /*
-     * 2010 protocol
-     */
-    public static final int MAX_COLUM = 16;      /* 16 LSU */
-    public static final int MAX_STEP = 32;
-    public static final byte MIN_EOP3SEC = (byte)0x03;
-    public static final byte MIN_3SEC = (byte)0x02;
-    public static final byte MIN_VAR = (byte)0x01;
-    public static final byte MAX_VAR = (byte)0x00;
-
-    public static final byte DELIMITER = (byte)0xFF;
-
-    public static short gen16LRC(byte[] s, int size) {
-        int sLrc = 0;
-        for (int ii = 0; ii < size; ii++) {
-            sLrc += (ii + 1) * (s[ii] & 0xFF); // Ensure unsigned value
-        }
-
-        byte lrc0 = (byte) (sLrc / 256);
-        byte lrc1 = (byte) (sLrc % 256);
-
-        return (short) ((lrc0 << 8) | (lrc1 & 0xFF));
-    }
-
-    public static int signalMapDecompress(byte[] compData, int start, int length, byte[] deCompData) {
-        int dp = 0;
-        int cop, cp, up;
-        int ep = length;
-        int sp = 77;
-        int inx;
-        int data;
-
-        /* find the first delimiter 0xFF */
-        data = compData[sp];
-        if (data != DELIMITER || sp >= ep) {
-            sp = 0;
-            while (sp <= ep) {
-                data = compData[sp];
-                if (data == DELIMITER) {
-                    break;
-                }
-                sp++;
-            }
-            data = compData[sp];
-            if (data != DELIMITER || sp >= ep) {
-                return 0;
-            }
-        }
-        sp++;
-        cop = cp = sp;
-
-        /* find the second delimiter 0xFF to backward */
-        sp = ep;
-        while (sp > cp) {
-            data = compData[sp];
-            if (data == DELIMITER) {
-                break;
-            }
-            sp--;
-        }
-        data = compData[sp];
-        if (data != DELIMITER || sp <= cp) {
-            return 0;
-        }
-
-        sp++;
-        up = sp;
-        sp = 0;
-        int inxCount = 0;
-        int byteCount = 0;
-        while(sp < cop-1) {
-            for (int bitCount = 0; bitCount < 8; bitCount++) {
-                data = compData[sp];
-                if ((data & (0x01 << bitCount)) > 0) {
-                    inx = compData[cp];
-                    inx = (inx & (0x03 << inxCount) ) >> inxCount;
-                    switch(inx)
-                    {
-                        case CODE_PED_GINX: deCompData[dp] = CODE_PED_GREEN; break;
-                        case CODE_PED_FINX: deCompData[dp] = CODE_PED_FLASH; break;
-                        case CODE_CAR_GINX: deCompData[dp] = CODE_CAR_GREEN; break;
-                        case CODE_USER_INX:
-                            deCompData[dp] = compData[up++];
-                            if (deCompData[up] == 0x00) {
-                                return byteCount+1;
-                            }
-                            break;
-                    }
-                    inxCount += 2;
-                    if ((inxCount % 8) == 0) {
-                        inxCount = 0;
-                        cp++;
-                    }
-                    dp++;
-                }
-                else {
-                    deCompData[dp++] = (byte)0x00;
-                }
-                if (dp >= MAXMAPDATASIZE) {
-                    return MAXMAPDATASIZE; /* PREVENT OVERRANGE */
-                }
-                byteCount++;
-            }
-            if (sp >= ep) {
-                break;
-            }
-            sp++;
-        }
-        return byteCount + 1;
-    }
-
-    public static int signalMapDecompress2010(byte[] compData, int start, int length, byte[] deCompData) {
-        int dp = 0;
-        int cop, cp, up;
-        int ep = length;
-        int sp = 0;
-        int col = 0;
-        int tCnt = 0;
-        int inx;
-        int data;
-
-        data = compData[sp];
-        while ((sp < ep) && (data > 0)) {
-            /* LSU 코드 값이 없으면 while 문이 종료됨 */
-        }
-
-        data = compData[sp++];
-        if (data > 0) {
-            return 0;
-        }
-
-        int value;
-        int varAttr, attr;
-        varAttr = attr = sp;
-        while (varAttr < ep && compData[varAttr++] != 0x00) {
-            ;   /*3초아닌 스텝시간 영역으로 이동*/
-        }
-        if (varAttr >= ep) {
-            return 0;
-        }
-
-        int stepIdx;
-        for (int step = 0; step < MAX_STEP; step++) {
-            if ((step > 0) && (step % 4 != 0)) {
-                attr++;
-                if (compData[attr] == 0x00) {
-                    break;
-                }
-            }
-            value = (((compData[attr]) >> ((step%4)*2)) & 0x03);
-            stepIdx = step*SP_SIZE;
-            switch(value)
-            {
-                case MIN_EOP3SEC:
-                    deCompData[stepIdx+SP_MIN] = 3;
-                    deCompData[stepIdx+SP_EOP] = 1;
-                    break; /*3초인 EOP 스텝인 경우 */
-                case MIN_3SEC:
-                    deCompData[stepIdx+SP_MIN] = 3;
-                    break;
-                case MAX_VAR:
-                    deCompData[stepIdx+SP_MAX] = compData[varAttr++];
-                    if (deCompData[stepIdx+SP_MAX] == (byte) 0x01) {
-                        if ((compData[varAttr] & 0x80) > 0) {
-                            deCompData[stepIdx+SP_EOP] = 1;
-                        }
-                        deCompData[stepIdx+SP_MIN] = (byte)(compData[varAttr++] & (byte) 0x7F);
-                        deCompData[stepIdx+SP_MAX] = compData[varAttr++];
-                    }
-                    break;
-                case MIN_VAR:
-                    deCompData[stepIdx+SP_MIN] = (byte)(compData[varAttr] & (byte) 0x7F);
-                    if ((compData[varAttr++] & 0x80) > 0) {
-                        deCompData[stepIdx+SP_EOP] = 1;
-                    }
-                    break;
-            }
-        }
-        return MAXMAPDATASIZE;
-    }
-}

+ 224 - 0
src/main/java/com/sig/comm/server/xnet/server/process/protocol/SigMapData.java

@@ -16,6 +16,34 @@ public class SigMapData {
     public static final int MAX_SIGMAP_LSU = 16;      /* 최대 lcu 갯수 */
     public static final int MAX_SIGMAP_STEP = 32;      /* 최대 step 갯수 */
 
+    public static final int MAXMAPDATASIZE = 608;
+    public static final int MAX_VAR_CNT = 40;
+
+    public static final int SP_SIZE = 19;
+    public static final int SP_MIN = 16;
+    public static final int SP_MAX = 17;
+    public static final int SP_EOP = 18;
+
+    public static final byte CODE_PED_GREEN = (byte)0x10;
+    public static final byte CODE_PED_FLASH = (byte)0x20;
+    public static final byte CODE_CAR_GREEN = (byte)0x01;
+    public static final byte CODE_PED_GINX  = (byte)0x00; /* 0b00000000 */
+    public static final byte CODE_PED_FINX  = (byte)0x01; /* 0b00000001 */
+    public static final byte CODE_CAR_GINX  = (byte)0x02; /* 0b00000010 */
+    public static final byte CODE_USER_INX  = (byte)0x03; /* 0b00000011 */
+
+    /*
+     * 2010 protocol
+     */
+    public static final int MAX_COLUM = 16;      /* 16 LSU */
+    public static final int MAX_STEP = 32;
+    public static final byte MIN_EOP3SEC = (byte)0x03;
+    public static final byte MIN_3SEC = (byte)0x02;
+    public static final byte MIN_VAR = (byte)0x01;
+    public static final byte MAX_VAR = (byte)0x00;
+
+    public static final byte DELIMITER = (byte)0xFF;
+
 
     private SigMapInfo[] step; // signal map data - step1 ~ step32
 
@@ -58,4 +86,200 @@ public class SigMapData {
         }
     }
 
+
+
+    public static short gen16LRC(byte[] s, int size) {
+        int sLrc = 0;
+        for (int ii = 0; ii < size; ii++) {
+            sLrc += (ii + 1) * (s[ii] & 0xFF); // Ensure unsigned value
+        }
+
+        byte lrc0 = (byte) (sLrc / 256);
+        byte lrc1 = (byte) (sLrc % 256);
+
+        return (short) ((lrc0 << 8) | (lrc1 & 0xFF));
+    }
+
+    public static int signalMapDecompress(byte[] compData, int start, int length, byte[] deCompData) {
+        int dp = 0;
+        int cop, cp, up;
+        int ep = length;
+        int sp = 77;
+        int inx;
+        int data;
+
+        /* find the first delimiter 0xFF */
+        data = compData[sp];
+        if (data != DELIMITER || sp >= ep) {
+            sp = 0;
+            while (sp <= ep) {
+                data = compData[sp];
+                if (data == DELIMITER) {
+                    break;
+                }
+                sp++;
+            }
+            data = compData[sp];
+            if (data != DELIMITER || sp >= ep) {
+                return 0;
+            }
+        }
+        sp++;
+        cop = cp = sp;
+
+        /* find the second delimiter 0xFF to backward */
+        sp = ep;
+        while (sp > cp) {
+            data = compData[sp];
+            if (data == DELIMITER) {
+                break;
+            }
+            sp--;
+        }
+        data = compData[sp];
+        if (data != DELIMITER || sp <= cp) {
+            return 0;
+        }
+
+        sp++;
+        up = sp;
+        sp = 0;
+        int inxCount = 0;
+        int byteCount = 0;
+        while(sp < cop-1) {
+            for (int bitCount = 0; bitCount < 8; bitCount++) {
+                data = compData[sp];
+                if ((data & (0x01 << bitCount)) > 0) {
+                    inx = compData[cp];
+                    inx = (inx & (0x03 << inxCount) ) >> inxCount;
+                    switch(inx)
+                    {
+                        case CODE_PED_GINX: deCompData[dp] = CODE_PED_GREEN; break;
+                        case CODE_PED_FINX: deCompData[dp] = CODE_PED_FLASH; break;
+                        case CODE_CAR_GINX: deCompData[dp] = CODE_CAR_GREEN; break;
+                        case CODE_USER_INX:
+                            deCompData[dp] = compData[up++];
+                            if (deCompData[up] == 0x00) {
+                                return byteCount+1;
+                            }
+                            break;
+                    }
+                    inxCount += 2;
+                    if ((inxCount % 8) == 0) {
+                        inxCount = 0;
+                        cp++;
+                    }
+                    dp++;
+                }
+                else {
+                    deCompData[dp++] = (byte)0x00;
+                }
+                if (dp >= MAXMAPDATASIZE) {
+                    return MAXMAPDATASIZE; /* PREVENT OVERRANGE */
+                }
+                byteCount++;
+            }
+            if (sp >= ep) {
+                break;
+            }
+            sp++;
+        }
+        return byteCount + 1;
+    }
+
+    public static int signalMapDecompress2010(byte[] compData, int start, int length, byte[] deCompData) {
+        int ep = length;
+        int sp = 0;
+        int cnt = 0;
+        int tCnt = 0;
+        int data;
+        int value;
+        int dp = 0;
+        byte lsu;
+
+        data = compData[sp];
+        while ((sp < ep) && (data > 0)) {
+            /* LSU 코드 값이 없으면 while 문이 종료됨 */
+            lsu = (byte)(data & 0xE0);
+            if (lsu == (byte)0xE0) {
+                cnt = (data & 0x1F) * 256 + compData[sp+1];
+                sp++;
+                sp++;
+            }
+            else if (lsu == (byte)0xC0) {
+                cnt = (data & 0x1F);
+                sp++;
+            }
+            else {
+                cnt = 1;
+            }
+
+            data = compData[sp];
+            if ((data & 0xE0) == 0xC0){
+                value = 0x00; /* 00코드가 생략되었는지 확인 */
+            }
+            else {
+                value = data;
+                sp++;
+            }
+            /* baseStep 구조체에 저장하기(LSU 값만 저장함) */
+            for (int ii = 0; ii < cnt; ii++, tCnt++) {
+                dp = (tCnt % MAX_STEP) * SP_SIZE;
+                deCompData[dp + (tCnt/MAX_STEP)] = (byte)value;
+            }
+        }
+
+        data = compData[sp++];
+        if (data > 0) {
+            return 0;
+        }
+
+        int varAttr, attr;
+        varAttr = attr = sp;
+        while (varAttr < ep && compData[varAttr++] != 0x00) {
+            ;   /*3초아닌 스텝시간 영역으로 이동*/
+        }
+        if (varAttr >= ep) {
+            return 0;
+        }
+
+        int stepIdx;
+        for (int step = 0; step < MAX_STEP; step++) {
+            if ((step > 0) && (step % 4 != 0)) {
+                attr++;
+                if (compData[attr] == 0x00) {
+                    break;
+                }
+            }
+            value = (((compData[attr]) >> ((step%4)*2)) & 0x03);
+            stepIdx = step*SP_SIZE;
+            switch(value)
+            {
+                case MIN_EOP3SEC:
+                    deCompData[stepIdx+SP_MIN] = 3;
+                    deCompData[stepIdx+SP_EOP] = 1;
+                    break; /*3초인 EOP 스텝인 경우 */
+                case MIN_3SEC:
+                    deCompData[stepIdx+SP_MIN] = 3;
+                    break;
+                case MAX_VAR:
+                    deCompData[stepIdx+SP_MAX] = compData[varAttr++];
+                    if (deCompData[stepIdx+SP_MAX] == (byte) 0x01) {
+                        if ((compData[varAttr] & 0x80) > 0) {
+                            deCompData[stepIdx+SP_EOP] = 1;
+                        }
+                        deCompData[stepIdx+SP_MIN] = (byte)(compData[varAttr++] & (byte) 0x7F);
+                        deCompData[stepIdx+SP_MAX] = compData[varAttr++];
+                    }
+                    break;
+                case MIN_VAR:
+                    deCompData[stepIdx+SP_MIN] = (byte)(compData[varAttr] & (byte) 0x7F);
+                    if ((compData[varAttr++] & 0x80) > 0) {
+                        deCompData[stepIdx+SP_EOP] = 1;
+                    }
+                    break;
+            }
+        }
+        return MAXMAPDATASIZE;
+    }
 }

+ 2 - 3
src/main/java/com/sig/comm/server/xnet/server/process/response/SigSignalMap.java

@@ -3,7 +3,6 @@ package com.sig.comm.server.xnet.server.process.response;
 import com.sig.comm.server.dto.IntDto;
 import com.sig.comm.server.process.dbms.DbmsData;
 import com.sig.comm.server.process.dbms.DbmsDataProcess;
-import com.sig.comm.server.xnet.server.process.protocol.SigMapCompress;
 import com.sig.comm.server.xnet.server.process.protocol.SigMapData;
 import com.sig.comm.server.xnet.server.process.protocol.SigProtocolConst;
 import lombok.extern.slf4j.Slf4j;
@@ -73,10 +72,10 @@ public class SigSignalMap implements SigCommResponse {
                 mapData.init();
 
                 if (lcType == SigMapData.ESIGMAP_LC_TYPE_2004) {
-                    res = SigMapCompress.signalMapDecompress(compData, idx, compSize, deCompData);
+                    res = SigMapData.signalMapDecompress(compData, idx, compSize, deCompData);
                 }
                 else {
-                    res = SigMapCompress.signalMapDecompress2010(compData, idx, compSize, deCompData);
+                    res = SigMapData.signalMapDecompress2010(compData, idx, compSize, deCompData);
                 }
                 idx = idx + SigMapData.MAX_COMPRESS_DATA_SIZE;
 

+ 13 - 13
src/main/resources/logback-spring-appender.xml

@@ -42,32 +42,32 @@
         </rollingPolicy>
     </appender>
 
-    <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>error</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-        <file>${LOG_PATH}${LOG_FILE_NAME_ERROR}</file>
+    <appender name="FILE_ASPECT" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_PATH}${LOG_FILE_NAME_ASPECT}</file>
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
             <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_ERROR}</pattern>
+            <pattern>${LOG_PATTERN_ASPECT}</pattern>
         </encoder>
         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME_ERROR}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
+            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_ASPECT}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
             <maxFileSize>${MAX_FILESIZE}</maxFileSize>
             <maxHistory>${MAX_HISTORY}</maxHistory>
         </rollingPolicy>
     </appender>
 
-    <appender name="CENTER_COMM" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME_CENTER_COMM}</file>
+    <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>error</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <file>${LOG_PATH}${LOG_FILE_NAME_ERROR}</file>
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
             <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_CENTER_COMM}</pattern>
+            <pattern>${LOG_PATTERN_ERROR}</pattern>
         </encoder>
         <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME_CENTER_COMM}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
+            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME_ERROR}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
             <maxFileSize>${MAX_FILESIZE}</maxFileSize>
             <maxHistory>${MAX_HISTORY}</maxHistory>
         </rollingPolicy>

+ 15 - 23
src/main/resources/logback-spring.xml

@@ -2,35 +2,32 @@
 <configuration scan="true" scanPeriod="60 seconds">
     <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
 
-    <property name="APP_CLASS_PATH"  value="com.sig.comm"/>
+    <property name="APP_CLASS_PATH"  value="com.sig.comm.server"/>
     <property name="PROJECT_PREFIX"  value="sig"/>
     <property name="PROJECT_NAME"    value="${PROJECT_PREFIX}-comm-server"/>
     <property name="ROOT_LOG_LEVEL"  value="INFO"/>
     <property name="LOG_CHARSET"     value="UTF-8" />
-    <property name="LOG_PATH"        value="${user.dir}/logs/"/>
-    <property name="LOG_BACKUP_PATH" value="${user.dir}/logs/backup/"/>
+    <property name="LOG_PATH"        value="${user.home}/logs/${PROJECT_NAME}/"/>
+    <property name="LOG_BACKUP_PATH" value="${user.home}/logs/${PROJECT_NAME}/backup/"/>
 
     <property name="LOG_FILE_NAME"             value="${PROJECT_NAME}.log"/>
     <property name="LOG_FILE_NAME_ERROR"       value="${PROJECT_NAME}.err.log"/>
     <property name="LOG_FILE_NAME_PATTERN"     value="%d{yyyyMMdd}_%i.log.gz"/>
     <property name="LOG_FILE_NAME_PACKET"      value="${PROJECT_PREFIX}-packet"/>
     <property name="LOG_FILE_NAME_SESSION"     value="${PROJECT_PREFIX}-session.log"/>
-    <property name="LOG_FILE_NAME_CENTER_COMM" value="${PROJECT_PREFIX}-center-comm.log"/>
     <property name="LOG_FILE_NAME_SQL"         value="${PROJECT_PREFIX}-sql.log"/>
     <property name="LOG_FILE_NAME_SCHEDULE"    value="${PROJECT_PREFIX}-schedule.log"/>
-    <property name="LOG_FILE_NAME_STATISTICS"  value="${PROJECT_PREFIX}-statistics.log"/>
+    <property name="LOG_FILE_NAME_ASPECT"      value="${PROJECT_PREFIX}-aspect.log"/>
 
     <property name="MAX_FILESIZE" value="10MB"/>
-    <property name="MAX_HISTORY"  value="30"/>
+    <property name="MAX_HISTORY"  value="10"/>
     <property name="LOG_PATTERN_FILE"        value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
     <property name="LOG_PATTERN_ERROR"       value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%30t] [%5level] %42logger{35}.%-20M ${PID:-} %n%msg%n"/>
     <property name="LOG_PATTERN_PACKET"      value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
     <property name="LOG_PATTERN_SESSION"     value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
-    <property name="LOG_PATTERN_CENTER_COMM" value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
     <property name="LOG_PATTERN_SQL"         value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
     <property name="LOG_PATTERN_SCHEDULE"    value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
-    <property name="LOG_PATTERN_STATISTICS"  value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
-<!--    <property name="LOG_PATTERN_CONSOLE"     value="[%d{HH:mm:ss.SSS}] %highlight([%5level]) %highlight(${PID:-}): %cyan(%msg) %n"/>-->
+    <property name="LOG_PATTERN_ASPECT"      value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
     <property name="LOG_PATTERN_CONSOLE"     value="[%d{HH:mm:ss.SSS}] [%5level] %msg %n"/>
 
     <springProfile name="!xxx">
@@ -43,31 +40,26 @@
         <appender-ref ref="FILE_ERROR"/>
     </root>
 
-    <logger name="${APP_CLASS_PATH}.xnettcp" level="INFO" additivity="false">
-        <appender-ref ref="FILE_PACKET"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </logger>
-
-    <logger name="${APP_CLASS_PATH}.xnetudp" level="INFO" additivity="false">
+    <logger name="${APP_CLASS_PATH}.service" level="INFO" additivity="false">
         <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="CENTER_COMM"/>
+        <appender-ref ref="FILE_STATISTICS"/>
         <appender-ref ref="FILE_ERROR"/>
     </logger>
 
-    <logger name="${APP_CLASS_PATH}.xnettcp" level="INFO" additivity="true">
-        <appender-ref ref="FILE_SESSION"/>
+    <logger name="${APP_CLASS_PATH}.scheduler" level="INFO" additivity="false">
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="FILE_SCHEDULE"/>
         <appender-ref ref="FILE_ERROR"/>
     </logger>
 
-    <logger name="${APP_CLASS_PATH}.service.StatisticsServices" level="INFO" additivity="false">
+    <logger name="${APP_CLASS_PATH}.aspect" level="INFO" additivity="false">
         <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="FILE_STATISTICS"/>
+        <appender-ref ref="FILE_ASPECT"/>
         <appender-ref ref="FILE_ERROR"/>
     </logger>
 
-    <logger name="${APP_CLASS_PATH}.scheduler" level="INFO" additivity="false">
-        <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="FILE_SCHEDULE"/>
+    <logger name="${APP_CLASS_PATH}.xnet" level="INFO" additivity="false">
+        <appender-ref ref="FILE_PACKET"/>
         <appender-ref ref="FILE_ERROR"/>
     </logger>