Переглянути джерело

last 2025 commit, but not deployed

shjung 10 годин тому
батько
коміт
3135ef1963

+ 6 - 0
conf/tsi-comm-server.yml

@@ -3,6 +3,12 @@
 #    active: dev
   #main:
   #  web-application-type: servlet
+spring:
+  datasource:
+    hikari:
+      jdbc-url: jdbc:mariadb://115.91.94.42:13306/cvim_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul
+      username: cvim
+      password: 44Klctest$$
 
 application:
   process-id: tsi-comm-server-1

BIN
tsi-comm-server-0.0.1.jar


+ 3 - 0
tsi-comm-server/src/main/java/com/tsi/comm/server/config/ApplicationConfig.java

@@ -5,6 +5,7 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 import lombok.extern.slf4j.Slf4j;
+import org.slf4j.MDC;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
 
@@ -32,10 +33,12 @@ public class ApplicationConfig {
         if (this.cpuLimits < 50) this.cpuLimits = 50;
         if (this.cpuLimits > 90) this.cpuLimits = 90;
 
+        MDC.put("filename", "config");
         log.info("[ApplicationConfig] -------------------------");
         log.info("[ApplicationConfig]         processId: {}", this.processId);
         log.info("[ApplicationConfig]  useLoggingThread: {}", this.useLoggingThread);
         log.info("[ApplicationConfig]         cpuLimits: {}", this.cpuLimits);
+        MDC.clear();
     }
 
 }

+ 5 - 1
tsi-comm-server/src/main/java/com/tsi/comm/server/config/DatabaseConfig.java

@@ -7,6 +7,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.ibatis.session.SqlSessionFactory;
 import org.mybatis.spring.SqlSessionFactoryBean;
 import org.mybatis.spring.SqlSessionTemplate;
+import org.slf4j.MDC;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.beans.factory.annotation.Value;
@@ -42,8 +43,11 @@ public class DatabaseConfig {
         if (this.mapperLocations.trim().isEmpty()) {
             this.mapperLocations = "classpath:mybatis/mapper/**/*.xml";
         }
-        log.info("        jdbcUrl: {}", this.jdbcUrl);
+
+        MDC.put("filename", "config");
+        log.info("            jdbcUrl: {}", this.jdbcUrl);
         log.info("mapperLocations-tsi: {}", this.mapperLocations);
+        MDC.clear();
     }
 
     @Primary

+ 4 - 0
tsi-comm-server/src/main/java/com/tsi/comm/server/config/SchedulingConfig.java

@@ -2,6 +2,7 @@ package com.tsi.comm.server.config;
 
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
+import org.slf4j.MDC;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.SchedulingConfigurer;
@@ -28,8 +29,11 @@ public class SchedulingConfig implements SchedulingConfigurer {
             this.poolSize = Math.max(this.MIN_POOL_SIZE, availableProcessors);
             this.poolSize = Math.min(this.poolSize, this.MAX_POOL_SIZE);
         }
+
+        MDC.put("filename", "config");
         log.info("[SchedulingConfig] ------------");
         log.info("[SchedulingConfig] poolCore: {} EA.", this.poolSize);
+        MDC.clear();
     }
 
     @Override

+ 3 - 0
tsi-comm-server/src/main/java/com/tsi/comm/server/config/ThreadPoolInitializer.java

@@ -4,6 +4,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.extern.slf4j.Slf4j;
 import org.jetbrains.annotations.NotNull;
+import org.slf4j.MDC;
 import org.springframework.context.annotation.Bean;
 import org.springframework.scheduling.annotation.AsyncConfigurerSupport;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@@ -31,8 +32,10 @@ public class ThreadPoolInitializer extends AsyncConfigurerSupport {
             this.poolCore = MAX_CORE;
         }
 
+        MDC.put("filename", "config");
         log.info("[ThreadPoolInitializer]   availableProcessors: {}", MAX_CORE);
         log.info("[ThreadPoolInitializer]        threadPoolCore: {}", this.poolCore);
+        MDC.clear();
     }
 
     public ThreadPoolTaskExecutor getDefaultExecutor(int poolSize) {

+ 19 - 0
tsi-comm-server/src/main/java/com/tsi/comm/server/config/TraceConfig.java

@@ -14,6 +14,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import lombok.ToString;
 import lombok.extern.slf4j.Slf4j;
+import org.slf4j.MDC;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.PostConstruct;
@@ -120,14 +121,18 @@ public class TraceConfig {
             this.nodeLogging = props.getProperty("node-logging", "false").trim().equalsIgnoreCase("true");
 
         } catch (Exception e) {
+            MDC.put("filename", "config");
             log.error("loadTraceInfo: Exception: {}", e.getMessage());
+            MDC.clear();
         }
     }
 
     private void updateTcpDumpStatus(String ipAddr, boolean shouldTcpDump) {
         TsiNodeVo nodeVo = this.nodeManager.getIpAddr(ipAddr);
         if (nodeVo != null && nodeVo.isTcpDump() != shouldTcpDump) {
+            MDC.put("filename", "config");
             log.info("TCP dump status changed for node {}: {} -> {}", nodeVo.getNodeId(), nodeVo.isTcpDump(), shouldTcpDump);
+            MDC.clear();
             updateTcpDumpForChannel(nodeVo, shouldTcpDump);
         }
     }
@@ -135,7 +140,9 @@ public class TraceConfig {
     private void updateDumpStatus(long nodeId, boolean shouldDump) {
         TsiNodeVo nodeVo = this.nodeManager.get(nodeId);
         if (nodeVo != null && nodeVo.isDump() != shouldDump) {
+            MDC.put("filename", "config");
             log.info("Dump status changed for node {}: {} -> {}", nodeId, nodeVo.isDump(), shouldDump);
+            MDC.clear();
             nodeVo.setDump(shouldDump);
         }
     }
@@ -156,17 +163,23 @@ public class TraceConfig {
                 ChannelPipeline pipeline = channel.pipeline();
                 boolean hasHandler = pipeline.get(handlerName) != null;
                 if (addHandler && !hasHandler) {
+                    MDC.put("filename", "config");
                     log.info("Adding TCP dump handler to channel for center: {}, {}", nodeVo.getNodeId(), nodeVo.getIpAddr());
+                    MDC.clear();
                     pipeline.addFirst(handlerName, new MdcLoggingHandler(LogLevel.INFO));
                 }
                 else if (!addHandler && hasHandler) {
+                    MDC.put("filename", "config");
                     log.info("Removing TCP dump handler from channel for center: {}, {}", nodeVo.getNodeId(), nodeVo.getIpAddr());
+                    MDC.clear();
                     pipeline.remove(handlerName);
                 }
             });
         }
         catch(Exception e) {
+            MDC.put("filename", "config");
             log.error("updateTcpDumpForChannel Exception: {}", e.getMessage());
+            MDC.clear();
         }
     }
 
@@ -191,14 +204,18 @@ public class TraceConfig {
                 // 3-1. DUMP 상태 업데이트
                 boolean shouldDump = dumpNodeIds.contains(nodeVo.getNodeId());
                 if (nodeVo.isDump() != shouldDump) {
+                    MDC.put("filename", "config");
                     log.info("Dump status changed for node {}: {} -> {}", nodeVo.getNodeId(), nodeVo.isDump(), shouldDump);
+                    MDC.clear();
                     nodeVo.setDump(shouldDump);
                 }
 
                 // 3-2. TCP-DUMP 상태 업데이트
                 boolean shouldTcpDump = tcpDumpIps.contains(nodeVo.getIpAddr());
                 if (nodeVo.isTcpDump() != shouldTcpDump) {
+                    MDC.put("filename", "config");
                     log.info("TCP dump status changed for node {}: {} -> {}", nodeVo.getNodeId(), nodeVo.isTcpDump(), shouldTcpDump);
+                    MDC.clear();
                     nodeVo.setTcpDump(shouldTcpDump);
                     updateTcpDumpForChannel(nodeVo, shouldTcpDump);
                 }
@@ -210,7 +227,9 @@ public class TraceConfig {
             this.nodeLogging = props.getProperty("node-logging",  "false").trim().equalsIgnoreCase("true");
         }
         catch(Exception e) {
+            MDC.put("filename", "config");
             log.error("loadTraceInfo: Exception: {}", e.getMessage());
+            MDC.clear();
         }
 
     }

+ 3 - 1
tsi-comm-server/src/main/java/com/tsi/comm/server/config/TsiCvimServerConfig.java

@@ -4,6 +4,7 @@ import com.tsi.comm.server.xnet.NettyServerConfig;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;
+import org.slf4j.MDC;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
 
@@ -49,6 +50,7 @@ public class TsiCvimServerConfig extends NettyServerConfig {
 
         this.whiteListIpSet = getWhitelistIpSet();
 
+        MDC.put("filename", "config");
         log.info("[TsiCvimServerConfig] =======================================================");
         log.info("[TsiCvimServerConfig]              serverId: {}", this.serverId);
         log.info("[TsiCvimServerConfig]              MAX_CORE: {}", MAX_CORE);
@@ -70,7 +72,7 @@ public class TsiCvimServerConfig extends NettyServerConfig {
         log.info("[TsiCvimServerConfig]    allIdleTimeSeconds: {}", this.allIdleTimeSeconds);
         log.info("[TsiCvimServerConfig] connectTimeoutSeconds: {}", this.connectTimeoutSeconds);
         log.info("[TsiCvimServerConfig] =======================================================");
-
+        MDC.clear();
     }
 
     public Set<String> getWhitelistIpSet() {

+ 3 - 0
tsi-comm-server/src/main/java/com/tsi/comm/server/config/TsiKafkaProducerConfig.java

@@ -5,6 +5,7 @@ import lombok.Getter;
 import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.kafka.clients.consumer.ConsumerConfig;
+import org.slf4j.MDC;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
 
@@ -54,6 +55,7 @@ public class TsiKafkaProducerConfig {
             this.testServers = this.bootstrapServers;
         }
 
+        MDC.put("filename", "config");
         log.info("[TsiKafkaProducerConfig] --------------------");
         log.info("[TsiKafkaProducerConfig]     multiConnect: {}", this.multiConnect);
         log.info("[TsiKafkaProducerConfig] bootstrapServers: {}", this.bootstrapServers);
@@ -64,6 +66,7 @@ public class TsiKafkaProducerConfig {
         log.info("[TsiKafkaProducerConfig]       enableCvim: {}", this.enableCvim);
         log.info("[TsiKafkaProducerConfig]       enableNode: {}", this.enableNode);
         log.info("[TsiKafkaProducerConfig]       enableTest: {}", this.enableTest);
+        MDC.clear();
     }
 
     public String getGroupId() {

+ 8 - 2
tsi-comm-server/src/main/java/com/tsi/comm/server/controller/TsiCommServerRestController.java

@@ -52,8 +52,14 @@ public class TsiCommServerRestController {
         sb.append(String.format(" Process Id: %s, Server Id: %d, Binding: %d, %s, %s",
                 this.config.getProcessId(), this.serverConfig.getServerId(), this.serverConfig.getBindingPort(),
                 this.config.getBootingTime(), TimeUtils.now())).append(sep);
-        sb.append(String.format(" Workers(Packet/Logging/Dbms): %d/%d/%d",
-                this.serverConfig.getPacketWorkers(), this.serverConfig.getLoggingWorkers(), this.serverConfig.getDbmsWorkers())).append(sep);
+        if (this.loggingProcess.isEnabled()) {
+            sb.append(String.format(" Workers(Packet/Logging/Dbms): %d/%d/%d",
+                    this.serverConfig.getPacketWorkers(), this.serverConfig.getLoggingWorkers(), this.serverConfig.getDbmsWorkers())).append(sep);
+        }
+        else {
+            sb.append(String.format(" Workers(Packet/Dbms): %d/%d",
+                    this.serverConfig.getPacketWorkers(), this.serverConfig.getDbmsWorkers())).append(sep);
+        }
         sb.append(heading).append(sep);
         return sb;
     }

+ 8 - 0
tsi-comm-server/src/main/java/com/tsi/comm/server/scheduler/ApplicationScheduler.java

@@ -13,6 +13,7 @@ import com.tsi.common.utils.Elapsed;
 import com.tsi.common.utils.TimeUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.slf4j.MDC;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
@@ -34,6 +35,7 @@ public class ApplicationScheduler {
     private final KafkaProducerService kafkaProducerService;
     private final KafkaConsumerService kafkaConsumerService;
 
+    private final String logFileName = "schedule";
     private String hostName;
 
     @PostConstruct
@@ -60,7 +62,9 @@ public class ApplicationScheduler {
         this.kafkaConsumerService.start();
         this.kafkaProducerService.sendPing();
         if (elapsed.milliSeconds() > 500) {
+            MDC.put("filename", this.logFileName);
             log.info("{}", String.format("%25s: %s", "checkKafkaServerAlive", TimeUtils.elapsedTimeStr(elapsed.nanoSeconds())));
+            MDC.clear();
         }
     }
 
@@ -129,7 +133,9 @@ public class ApplicationScheduler {
         Elapsed elapsed = new Elapsed();
         this.trace.loadTraceInfo();
         if (elapsed.milliSeconds() > 500) {
+            MDC.put("filename", this.logFileName);
             log.info("{}", String.format("%25s: %s", "loadTraceInfo", TimeUtils.elapsedTimeStr(elapsed.nanoSeconds())));
+            MDC.clear();
         }
     }
 
@@ -142,7 +148,9 @@ public class ApplicationScheduler {
         this.tsiCommServerService.loadDatabase();
         this.tsiCommServerService.updateProcessState(1);
         if (elapsed.milliSeconds() > 500) {
+            MDC.put("filename", this.logFileName);
             log.info("{}", String.format("%25s: %s", "loadBaseDatabase", TimeUtils.elapsedTimeStr(elapsed.nanoSeconds())));
+            MDC.clear();
         }
     }
 

+ 74 - 109
tsi-comm-server/src/main/resources/logback-spring.xml

@@ -15,12 +15,11 @@
     <property name="LOG_FILE_NAME_PATTERN"     value="%d{yyyyMMdd}_%i.log.gz"/>
 
     <property name="LOG_FILE_NAME_PROCESS"     value="process"/>
-    <property name="LOG_FILE_NAME_RAW"         value="raw"/>
+<!--    <property name="LOG_FILE_NAME_RAW"         value="raw"/>-->
+    <property name="LOG_FILE_NAME_REPORT"      value="report"/>
 
     <property name="LOG_FILE_NAME_SESSION"     value="session.log"/>
-    <property name="LOG_FILE_NAME_SCHEDULE"    value="schedule.log"/>
-    <property name="LOG_FILE_NAME_REPORT"      value="report.log"/>
-    <property name="LOG_FILE_NAME_CONFIG"      value="config.log"/>
+<!--    <property name="LOG_FILE_NAME_CONFIG"      value="config.log"/>-->
     <property name="LOG_FILE_NAME_DBMS"        value="dbms.log"/>
     <property name="LOG_FILE_NAME_KAFKA"       value="kafka.log"/>
 
@@ -61,6 +60,7 @@
             <maxHistory>${MAX_HISTORY}</maxHistory>
         </rollingPolicy>
     </appender>
+
     <appender name="ASYNC_ERROR" class="ch.qos.logback.classic.AsyncAppender">
         <queueSize>1000</queueSize>
         <discardingThreshold>5</discardingThreshold>
@@ -82,6 +82,7 @@
             <maxHistory>${MAX_HISTORY}</maxHistory>
         </rollingPolicy>
     </appender>
+
     <appender name="ASYNC_LOG" class="ch.qos.logback.classic.AsyncAppender">
         <queueSize>5000</queueSize>
         <discardingThreshold>5</discardingThreshold>
@@ -134,60 +135,82 @@
         <appender-ref ref="FILE_PROCESS" />
     </appender>
 
+    <!-- ========================= FILE_REPORT ======================================================================= -->
+    <appender name="FILE_REPORT" class="ch.qos.logback.classic.sift.SiftingAppender">
+        <discriminator>
+            <key>filename</key>
+            <defaultValue>${LOG_FILE_NAME_REPORT}</defaultValue>
+        </discriminator>
+        <sift>
+            <timeout>300000</timeout> <!-- 5분 = 300000 밀리초 -->
+            <appender name="FILE-${filename}" class="ch.qos.logback.core.rolling.RollingFileAppender">
+                <file>${LOG_PATH}/${filename}.log</file>
+                <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+                    <charset>${LOG_CHARSET}</charset>
+                    <Pattern>${LOG_PATTERN_PROCESS}</Pattern>
+                </encoder>
+
+                <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+                    <FileNamePattern>${LOG_BACKUP_PATH}/${filename}.${LOG_FILE_NAME_PATTERN}</FileNamePattern>
+                    <maxFileSize>${MAX_FILESIZE}</maxFileSize>
+                    <maxHistory>${MAX_HISTORY}</maxHistory>
+                </rollingPolicy>
+            </appender>
+        </sift>
+    </appender>
+
+    <appender name="ASYNC_REPORT" class="ch.qos.logback.classic.AsyncAppender">
+        <queueSize>1000</queueSize>
+        <discardingThreshold>5</discardingThreshold>
+        <neverBlock>true</neverBlock>
+        <includeCallerData>false</includeCallerData>
+        <appender-ref ref="FILE_REPORT" />
+    </appender>
+
+    <!-- ========================= INFO ======================================================================= -->
+    <root level="INFO">
+<!--        <appender-ref ref="CONSOLE"/>-->
+        <appender-ref ref="ASYNC_LOG"/>
+        <appender-ref ref="ASYNC_ERROR"/>
+    </root>
+
+    <!-- ========================= ASYNC_PROCESS ======================================================================= -->
     <logger name="com.tsi.comm.server.protocol" level="INFO" additivity="false">
         <appender-ref ref="ASYNC_PROCESS"/>
-        <appender-ref ref="FILE_ERROR"/>
+        <appender-ref ref="ASYNC_ERROR"/>
     </logger>
     <logger name="com.tsi.comm.server.process.packet" level="INFO" additivity="false">
         <appender-ref ref="ASYNC_PROCESS"/>
-        <appender-ref ref="FILE_ERROR"/>
+        <appender-ref ref="ASYNC_ERROR"/>
     </logger>
     <logger name="com.tsi.comm.server.process.logging" level="INFO" additivity="false">
         <appender-ref ref="ASYNC_PROCESS"/>
-        <appender-ref ref="FILE_ERROR"/>
+        <appender-ref ref="ASYNC_ERROR"/>
     </logger>
     <logger name="com.tsi.comm.server.tcp.handler.MdcLoggingHandler" level="INFO" additivity="false">
         <appender-ref ref="ASYNC_PROCESS"/>
-        <appender-ref ref="FILE_ERROR"/>
+        <appender-ref ref="ASYNC_ERROR"/>
     </logger>
 
-    <!-- ========================= INFO ======================================================================= -->
-    <root level="INFO">
-<!--        <appender-ref ref="CONSOLE"/>-->
-        <appender-ref ref="FILE_LOG"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </root>
-
-    <!-- ========================= FILE_CONFIG ======================================================================= -->
-    <appender name="FILE_CONFIG" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME_CONFIG}</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_CONFIG}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
-        </rollingPolicy>
-    </appender>
-<!--    <appender name="ASYNC_CONFIG" class="ch.qos.logback.classic.AsyncAppender">-->
-<!--        <queueSize>100</queueSize>-->
-<!--        <discardingThreshold>5</discardingThreshold>-->
-<!--        <neverBlock>true</neverBlock>-->
-<!--        <includeCallerData>false</includeCallerData>-->
-<!--        <appender-ref ref="FILE_CONFIG" />-->
-<!--    </appender>-->
-
+    <!-- ========================= ASYNC_REPORT ======================================================================= -->
     <logger name="com.tsi.comm.server.config" level="INFO" additivity="true">
         <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="FILE_CONFIG"/>
-        <appender-ref ref="FILE_ERROR"/>
+        <appender-ref ref="ASYNC_REPORT"/>
+        <appender-ref ref="ASYNC_ERROR"/>
     </logger>
     <logger name="com.tsi.comm.server.TsiCommServerApplication" level="INFO" additivity="true">
         <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="FILE_CONFIG"/>
-        <appender-ref ref="FILE_ERROR"/>
+        <appender-ref ref="ASYNC_REPORT"/>
+        <appender-ref ref="ASYNC_ERROR"/>
+    </logger>
+    <logger name="com.tsi.comm.server.repository" level="INFO" additivity="false">
+        <appender-ref ref="ASYNC_REPORT"/>
+        <appender-ref ref="ASYNC_ERROR"/>
+    </logger>
+
+    <logger name="com.tsi.comm.server.scheduler" level="INFO" additivity="false">
+        <appender-ref ref="ASYNC_REPORT"/>
+        <appender-ref ref="ASYNC_ERROR"/>
     </logger>
 
     <!-- ========================= FILE_DBMS ======================================================================= -->
@@ -203,6 +226,7 @@
             <maxHistory>${MAX_HISTORY}</maxHistory>
         </rollingPolicy>
     </appender>
+
     <appender name="ASYNC_DBMS" class="ch.qos.logback.classic.AsyncAppender">
         <queueSize>3000</queueSize>
         <discardingThreshold>5</discardingThreshold>
@@ -212,11 +236,11 @@
     </appender>
 
     <logger name="com.tsi.comm.server.process.dbms" level="INFO" additivity="false">
-        <appender-ref ref="FILE_DBMS"/>
-        <appender-ref ref="FILE_ERROR"/>
+        <appender-ref ref="ASYNC_DBMS"/>
+        <appender-ref ref="ASYNC_ERROR"/>
     </logger>
 
-    <!-- ========================= FILE_SCHEDULE ======================================================================= -->
+    <!-- ========================= FILE_KAFKA ======================================================================= -->
     <appender name="FILE_KAFKA" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <file>${LOG_PATH}${LOG_FILE_NAME_KAFKA}</file>
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
@@ -229,6 +253,7 @@
             <maxHistory>${MAX_HISTORY}</maxHistory>
         </rollingPolicy>
     </appender>
+
     <appender name="ASYNC_KAFKA" class="ch.qos.logback.classic.AsyncAppender">
         <queueSize>10000</queueSize>
         <discardingThreshold>5</discardingThreshold>
@@ -238,11 +263,11 @@
     </appender>
 
     <logger name="com.tsi.comm.server.kafka" level="INFO" additivity="false">
-        <appender-ref ref="FILE_KAFKA"/>
-        <appender-ref ref="FILE_ERROR"/>
+        <appender-ref ref="ASYNC_KAFKA"/>
+        <appender-ref ref="ASYNC_ERROR"/>
     </logger>
 
-    <!-- ========================= FILE_SCHEDULE ======================================================================= -->
+    <!-- ========================= FILE_SESSION ======================================================================= -->
     <appender name="FILE_SESSION" class="ch.qos.logback.core.rolling.RollingFileAppender">
         <file>${LOG_PATH}${LOG_FILE_NAME_SESSION}</file>
         <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
@@ -255,6 +280,7 @@
             <maxHistory>${MAX_HISTORY}</maxHistory>
         </rollingPolicy>
     </appender>
+
     <appender name="ASYNC_SESSION" class="ch.qos.logback.classic.AsyncAppender">
         <queueSize>4000</queueSize>
         <discardingThreshold>5</discardingThreshold>
@@ -264,69 +290,8 @@
     </appender>
 
     <logger name="com.tsi.comm.server.tcp" level="INFO" additivity="false">
-        <appender-ref ref="FILE_SESSION"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </logger>
-
-    <!-- ========================= FILE_SCHEDULE ======================================================================= -->
-    <appender name="FILE_REPORT" class="ch.qos.logback.classic.sift.SiftingAppender">
-        <discriminator>
-            <key>filename</key>
-            <defaultValue>${LOG_FILE_NAME_REPORT}</defaultValue>
-        </discriminator>
-        <sift>
-            <appender name="FILE-${filename}" class="ch.qos.logback.core.rolling.RollingFileAppender">
-                <file>${LOG_PATH}/${filename}.log</file>
-                <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-                    <charset>${LOG_CHARSET}</charset>
-                    <Pattern>${LOG_PATTERN_PROCESS}</Pattern>
-                </encoder>
-
-                <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-                    <FileNamePattern>${LOG_BACKUP_PATH}/${filename}.${LOG_FILE_NAME_PATTERN}</FileNamePattern>
-                    <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-                    <maxHistory>${MAX_HISTORY}</maxHistory>
-                </rollingPolicy>
-            </appender>
-        </sift>
-    </appender>
-    <appender name="ASYNC_REPORT" class="ch.qos.logback.classic.AsyncAppender">
-        <queueSize>1000</queueSize>
-        <discardingThreshold>5</discardingThreshold>
-        <neverBlock>true</neverBlock>
-        <includeCallerData>false</includeCallerData>
-        <appender-ref ref="FILE_REPORT" />
-    </appender>
-
-    <logger name="com.tsi.comm.server.repository" level="INFO" additivity="false">
-        <appender-ref ref="FILE_REPORT"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </logger>
-
-<!-- ========================= FILE_SCHEDULE ======================================================================= -->
-    <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_FILE}</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="ASYNC_SCHEDULE" class="ch.qos.logback.classic.AsyncAppender">
-        <queueSize>1000</queueSize>
-        <discardingThreshold>5</discardingThreshold>
-        <neverBlock>true</neverBlock>
-        <includeCallerData>false</includeCallerData>
-        <appender-ref ref="FILE_SCHEDULE" />
-    </appender>
-
-    <logger name="com.tsi.comm.server.scheduler" level="INFO" additivity="false">
-        <appender-ref ref="FILE_SCHEDULE"/>
-        <appender-ref ref="FILE_ERROR"/>
+        <appender-ref ref="ASYNC_SESSION"/>
+        <appender-ref ref="ASYNC_ERROR"/>
     </logger>
 
 </configuration>