From f612ca1c88bc7acaca8927190968d632ef20788f Mon Sep 17 00:00:00 2001 From: curry772 Date: Tue, 19 May 2026 11:19:13 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B1=B0=EB=9E=98=ED=8C=8C=EC=9D=BC=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8(SIFT=5FLOGGER)=20=EC=B6=9C=EB=A0=A5=EA=B8=B0=EB=8A=A5?= =?UTF-8?q?=20=EA=B0=9C=EB=B0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - UUID별로 거래파일로그 생성 --- .../com/eactive/eai/common/util/Logger.java | 37 ++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/eactive/eai/common/util/Logger.java b/src/main/java/com/eactive/eai/common/util/Logger.java index 40b36d1..06e811e 100644 --- a/src/main/java/com/eactive/eai/common/util/Logger.java +++ b/src/main/java/com/eactive/eai/common/util/Logger.java @@ -907,6 +907,41 @@ public class Logger implements LogKeys { System.out.println("@ add FileAppender to "+hc5Logger.getName()+" - "+appender.getName()); } } + + // * 거래 파일 로그 추가 코드 + // MDC txId가 있을 때만 SiftingAppender로 기록하는 필터 + // (txId 없는 일반 로그가 default.log로 쌓이는 것 방지) + ch.qos.logback.core.filter.Filter txIdFilter = new ch.qos.logback.core.filter.AbstractMatcherFilter() { + @Override + public ch.qos.logback.core.spi.FilterReply decide(ILoggingEvent event) { + String txId = event.getMDCPropertyMap().get(DISCRIMINATOR); + if (org.apache.commons.lang3.StringUtils.isNotBlank(txId) && !"default".equals(txId)) { + return ch.qos.logback.core.spi.FilterReply.ACCEPT; + } + return ch.qos.logback.core.spi.FilterReply.DENY; + } + }; + txIdFilter.start(); + siftAppender.addFilter(txIdFilter); + + // SIFT appender를 추가할 대상 로거 목록 + // → ESBFW, ADAPTER, DEFAULT 등 거래 처리에 관여하는 로거 추가 + String[] siftTargetLoggers = { LOGGER_ESBFW, LOGGER_ADAPTER, LOGGER_DEFAULT + // 필요 시 LOGGER_TRAN, LOGGER_NET 등 추가 + }; + + for (String targetLoggerName : siftTargetLoggers) { + ch.qos.logback.classic.Logger targetLogger = (ch.qos.logback.classic.Logger) LoggerFactory + .getLogger(targetLoggerName); + + if (targetLogger == null) + continue; + + // siftAppender 추가 (기존 appender는 그대로 유지 - additive 건드리지 않음) + targetLogger.addAppender(siftAppender); + System.out.println("@ add SiftAppender to " + targetLogger.getName() + " - " + siftAppender.getName()); + } + } catch(Exception e) { System.err.println("@@ Logger Configure Error.==================="); @@ -939,7 +974,7 @@ public class Logger implements LogKeys { } asisLevel = logger.getLevel(); - if ( asisLevel.toInt() != toLevel.toInt() ) { + if ( toLevel == null || asisLevel.toInt() != toLevel.toInt() ) { logger.setLevel( toLevel ); System.out.println("@@ Logger setLoggerLevel | " + loggerName + " AS-IS [" + asisLevel.toString() + "] TO [" + toLevel.toString() + "]");