Jelajahi Sumber

remove system.exit and update log4j rolling policy

shjung 10 bulan lalu
induk
melakukan
e7f3f92161

+ 0 - 1
conf/ggits-etlp-server.pid

@@ -1 +0,0 @@
-17644

+ 1 - 3
src/main/java/com/ggits/etlp/server/GgitsEtlpServerApplication.java

@@ -4,7 +4,6 @@ import com.ggits.etlp.server.common.SpringUtils;
 import com.ggits.etlp.server.repository.ApplicationRepository;
 import com.ggits.etlp.server.service.GgitsEtlpService;
 import lombok.extern.slf4j.Slf4j;
-import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.DisposableBean;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.boot.Banner;
@@ -61,7 +60,7 @@ public class GgitsEtlpServerApplication implements CommandLineRunner, Applicatio
     }
 
     @Override
-    public void onApplicationEvent(@NotNull ContextClosedEvent contextClosedEvent) {
+    public void onApplicationEvent(ContextClosedEvent contextClosedEvent) {
         SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         log.error("Application Terminated: {}, {}", sdfDate.format(new Date()), contextClosedEvent);
     }
@@ -69,7 +68,6 @@ public class GgitsEtlpServerApplication implements CommandLineRunner, Applicatio
     @Override
     public void destroy() throws Exception {
         log.error("Application destroy");
-        System.exit(0);
     }
 
     @Override

+ 12 - 6
src/main/java/com/ggits/etlp/server/scheduler/GgitsEtlpScheduler.java

@@ -2,7 +2,6 @@ package com.ggits.etlp.server.scheduler;
 
 import com.ggits.etlp.server.common.Elapsed;
 import com.ggits.etlp.server.service.GgitsEtlpService;
-import com.ggits.etlp.server.service.UnitSystService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Async;
@@ -18,7 +17,7 @@ import javax.annotation.PreDestroy;
 @Component
 public class GgitsEtlpScheduler {
 
-    private final UnitSystService unitSystService;
+//    private final UnitSystService unitSystService;
     private final GgitsEtlpService service;
 
     @PreDestroy
@@ -27,12 +26,19 @@ public class GgitsEtlpScheduler {
     }
     // 초(0-59) 분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-6) (0: 일, 1: 월, 2:화, 3:수, 4:목, 5:금, 6:토)
 
+//    @Async
+//    @Scheduled(cron = "0/30 * * * * *")  // 10초 주기 작업 실행
+//    public void updateProcessState() {
+////        Elapsed elapsed = new Elapsed();
+////        this.unitSystService.updateUnitSystStts(true);
+////        log.info("{}", String.format("%25s: %s", "updateProcessState", TimeUtils.elapsedTimeStr(elapsed.nanoSeconds())));
+//    }
+
     @Async
-    @Scheduled(cron = "0/30 * * * * *")  // 10초 주기 작업 실행
-    public void updateProcessState() {
+    @Scheduled(cron = "0/5 * * * * *")  // 5초 주기 작업 실행
+    public void checkDbms() {
 //        Elapsed elapsed = new Elapsed();
-//        this.unitSystService.updateUnitSystStts(true);
-//        log.info("{}", String.format("%25s: %s", "updateProcessState", TimeUtils.elapsedTimeStr(elapsed.nanoSeconds())));
+//        log.info("{}", String.format("%25s: %s", "checkDbms", TimeUtils.elapsedTimeStr(elapsed.nanoSeconds())));
     }
 
     @Async

+ 103 - 21
src/main/resources/logback-spring-appender.xml

@@ -1,4 +1,5 @@
 <included>
+
     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
         <!--        <withJansi>true</withJansi>-->
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
@@ -20,28 +21,18 @@
                     <Pattern>${LOG_PATTERN_PACKET}</Pattern>
                 </encoder>
 
-                <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+                <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                     <FileNamePattern>${LOG_BACKUP_PATH}etlp/${id}.${LOG_FILE_NAME_PATTERN}</FileNamePattern>
-                    <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-                    <maxHistory>${MAX_HISTORY}</maxHistory>
+                    <minIndex>1</minIndex>
+                    <maxIndex>${MAX_HISTORY}</maxIndex>
                 </rollingPolicy>
+                <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+                    <maxFileSize>${MAX_FILESIZE}</maxFileSize>
+                </triggeringPolicy>
             </appender>
         </sift>
     </appender>
 
-    <appender name="FILE_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME}</file>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_FILE}</pattern>
-        </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
-        </rollingPolicy>
-    </appender>
-
     <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <filter class="ch.qos.logback.classic.filter.LevelFilter">
             <level>error</level>
@@ -53,11 +44,32 @@
             <charset>${LOG_CHARSET}</charset>
             <pattern>${LOG_PATTERN_ERROR}</pattern>
         </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
             <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME_ERROR}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>${MAX_HISTORY}</maxIndex>
+        </rollingPolicy>
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
             <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
+        </triggeringPolicy>
+    </appender>
+
+    <appender name="FILE_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${LOG_PATH}${LOG_FILE_NAME}</file>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <charset>${LOG_CHARSET}</charset>
+            <pattern>${LOG_PATTERN_FILE}</pattern>
+        </encoder>
+
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>${MAX_HISTORY}</maxIndex>
         </rollingPolicy>
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
+        </triggeringPolicy>
     </appender>
 
     <appender name="FILE_SCHEDULE" class="ch.qos.logback.core.rolling.RollingFileAppender">
@@ -66,13 +78,83 @@
             <charset>${LOG_CHARSET}</charset>
             <pattern>${LOG_PATTERN_SCHEDULE}</pattern>
         </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
             <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME_SCHEDULE}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
+            <minIndex>1</minIndex>
+            <maxIndex>${MAX_HISTORY}</maxIndex>
         </rollingPolicy>
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
+        </triggeringPolicy>
     </appender>
 
+<!--    <appender name="FILE_PACKET" class="ch.qos.logback.classic.sift.SiftingAppender">-->
+<!--        <discriminator>-->
+<!--            <key>id</key>-->
+<!--            <defaultValue>${LOG_FILE_NAME_PACKET}</defaultValue>-->
+<!--        </discriminator>-->
+<!--        <sift>-->
+<!--            <appender name="FILE-${id}" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
+<!--                <file>${LOG_PATH}etlp/${id}.log</file>-->
+<!--                <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">-->
+<!--                    <charset>${LOG_CHARSET}</charset>-->
+<!--                    <Pattern>${LOG_PATTERN_PACKET}</Pattern>-->
+<!--                </encoder>-->
+
+<!--                <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">-->
+<!--                    <FileNamePattern>${LOG_BACKUP_PATH}etlp/${id}.${LOG_FILE_NAME_PATTERN}</FileNamePattern>-->
+<!--                    <maxFileSize>${MAX_FILESIZE}</maxFileSize>-->
+<!--                    <maxHistory>${MAX_HISTORY}</maxHistory>-->
+<!--                </rollingPolicy>-->
+<!--            </appender>-->
+<!--        </sift>-->
+<!--    </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>-->
+<!--        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">-->
+<!--            <charset>${LOG_CHARSET}</charset>-->
+<!--            <pattern>${LOG_PATTERN_ERROR}</pattern>-->
+<!--        </encoder>-->
+<!--        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">-->
+<!--            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME_ERROR}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>-->
+<!--            <maxFileSize>${MAX_FILESIZE}</maxFileSize>-->
+<!--            <maxHistory>${MAX_HISTORY}</maxHistory>-->
+<!--        </rollingPolicy>-->
+<!--    </appender>-->
+
+<!--    <appender name="FILE_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
+<!--        <file>${LOG_PATH}${LOG_FILE_NAME}</file>-->
+<!--        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">-->
+<!--            <charset>${LOG_CHARSET}</charset>-->
+<!--            <pattern>${LOG_PATTERN_FILE}</pattern>-->
+<!--        </encoder>-->
+<!--        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">-->
+<!--            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>-->
+<!--            <maxFileSize>${MAX_FILESIZE}</maxFileSize>-->
+<!--            <maxHistory>${MAX_HISTORY}</maxHistory>-->
+<!--        </rollingPolicy>-->
+<!--    </appender>-->
+
+<!--    <appender name="FILE_SCHEDULE" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
+<!--        <file>${LOG_PATH}${LOG_FILE_NAME_SCHEDULE}</file>-->
+<!--        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">-->
+<!--            <charset>${LOG_CHARSET}</charset>-->
+<!--            <pattern>${LOG_PATTERN_SCHEDULE}</pattern>-->
+<!--        </encoder>-->
+<!--        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">-->
+<!--            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME_SCHEDULE}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>-->
+<!--            <maxFileSize>${MAX_FILESIZE}</maxFileSize>-->
+<!--            <maxHistory>${MAX_HISTORY}</maxHistory>-->
+<!--        </rollingPolicy>-->
+<!--    </appender>-->
+
     <appender name="FILE_SQL" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <file>${LOG_PATH}${LOG_FILE_NAME_SQL}</file>
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">

+ 38 - 18
src/main/resources/logback-spring.xml

@@ -30,24 +30,44 @@
         <include resource="logback-spring-appender.xml"/>
     </springProfile>
 
-    <root level="INFO">
-        <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="FILE_LOG"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </root>
-
-    <logger name="${APP_CLASS_PATH}.service" level="INFO" additivity="false">
-        <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="FILE_PACKET"/>
-        <appender-ref ref="FILE_LOG"/>
-        <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"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </logger>
+    <springProfile name="dev">
+        <root level="INFO">
+            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="FILE_LOG"/>
+            <appender-ref ref="FILE_ERROR"/>
+        </root>
+
+        <logger name="${APP_CLASS_PATH}.service" level="INFO" additivity="false">
+            <appender-ref ref="CONSOLE"/>
+            <appender-ref ref="FILE_PACKET"/>
+            <appender-ref ref="FILE_LOG"/>
+            <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"/>
+            <appender-ref ref="FILE_ERROR"/>
+        </logger>
+    </springProfile>
+
+    <springProfile name="prod">
+        <root level="INFO">
+            <appender-ref ref="FILE_LOG"/>
+            <appender-ref ref="FILE_ERROR"/>
+        </root>
+
+        <logger name="${APP_CLASS_PATH}.service" level="INFO" additivity="false">
+            <appender-ref ref="FILE_PACKET"/>
+            <appender-ref ref="FILE_LOG"/>
+            <appender-ref ref="FILE_ERROR"/>
+        </logger>
+
+        <logger name="${APP_CLASS_PATH}.scheduler" level="INFO" additivity="false">
+            <appender-ref ref="FILE_SCHEDULE"/>
+            <appender-ref ref="FILE_ERROR"/>
+        </logger>
+    </springProfile>
 
     <logger name="jdbc" level="OFF"/>
     <logger name="jdbc.sqlonly" level="OFF"/>