From 8d635867490c667f3d3dabe410806284aa1a95c8 Mon Sep 17 00:00:00 2001 From: curry772 Date: Tue, 19 May 2026 13:41:35 +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=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - HTTP Inbound 거래도 출력되도록 수정 - HTTP Header 파일로그 추가 --- .../dynamic/HttpAdapterServiceSupport.java | 100 +++++++++++------- .../common/util/HttpAdapterExtraLogUtil.java | 3 + .../eactive/eai/common/util/TxFileLogger.java | 3 +- 3 files changed, 64 insertions(+), 42 deletions(-) diff --git a/src/main/java/com/eactive/eai/adapter/http/dynamic/HttpAdapterServiceSupport.java b/src/main/java/com/eactive/eai/adapter/http/dynamic/HttpAdapterServiceSupport.java index 4788cbb..1f9c566 100644 --- a/src/main/java/com/eactive/eai/adapter/http/dynamic/HttpAdapterServiceSupport.java +++ b/src/main/java/com/eactive/eai/adapter/http/dynamic/HttpAdapterServiceSupport.java @@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang3.StringUtils; +import org.slf4j.MDC; import com.eactive.eai.adapter.AdapterGroupVO; import com.eactive.eai.adapter.AdapterManager; @@ -16,7 +17,9 @@ import com.eactive.eai.adapter.http.dynamic.filter.HttpAdapterFilter; import com.eactive.eai.adapter.http.dynamic.filter.HttpAdapterFilterFactory; import com.eactive.eai.adapter.http.dynamic.filter.HttpAdapterFilterType; import com.eactive.eai.adapter.http.dynamic.filter.JwtAuthException; +import com.eactive.eai.common.TransactionContextKeys; import com.eactive.eai.common.util.Logger; +import com.eactive.eai.common.util.UUIDGenerator; public abstract class HttpAdapterServiceSupport implements HttpAdapterService, HttpAdapterServiceKey { private static final String LOG_PREFIX = "HttpAdapterServiceSupport] "; @@ -27,53 +30,70 @@ public abstract class HttpAdapterServiceSupport implements HttpAdapterService, H public Object service(String adptGrpName, String adptName, Object message, Properties prop, HttpServletRequest request, HttpServletResponse response) throws Exception { + String uuid = prop.getProperty(TransactionContextKeys.TRANSACTION_UUID); + boolean bMDCput = false; + if(uuid == null) { + uuid = UUIDGenerator.getUUID().toString().replaceAll("-", ""); + prop.setProperty(TransactionContextKeys.TRANSACTION_UUID, uuid); + } - String transactionId = request.getHeader(HttpClientAdapterServiceKey.TRANSACTION_ID); - if (StringUtils.isNotBlank(transactionId)) { - prop.put(HttpClientAdapterServiceKey.TRANSACTION_ID, transactionId); + if(MDC.get(Logger.DISCRIMINATOR) == null) { + MDC.put(Logger.DISCRIMINATOR, uuid); + bMDCput = true; } try { - String clientId = request.getHeader(HEADER_NAME_CLIENT_ID); - if (StringUtils.isNotBlank(clientId)) { - prop.put(PROPERTIES_NAME_CLIENT_ID, clientId); + String transactionId = request.getHeader(HttpClientAdapterServiceKey.TRANSACTION_ID); + if (StringUtils.isNotBlank(transactionId)) { + prop.put(HttpClientAdapterServiceKey.TRANSACTION_ID, transactionId); } - String instanceId = request.getHeader(HttpClientAdapterServiceKey.INSTANCE_ID); - if (StringUtils.isNotBlank(instanceId)) { - prop.put(HttpClientAdapterServiceKey.INSTANCE_ID, instanceId); + try { + String clientId = request.getHeader(HEADER_NAME_CLIENT_ID); + if (StringUtils.isNotBlank(clientId)) { + prop.put(PROPERTIES_NAME_CLIENT_ID, clientId); + } + + String instanceId = request.getHeader(HttpClientAdapterServiceKey.INSTANCE_ID); + if (StringUtils.isNotBlank(instanceId)) { + prop.put(HttpClientAdapterServiceKey.INSTANCE_ID, instanceId); + } + } catch (Exception e) { + logger.warn(LOG_PREFIX + "Failed to read request headers: " + e.getMessage()); } - } catch (Exception e) { - } - - Object obj = null; - try { - message = doPreFilters(adptGrpName, adptName, message, prop, request, response); - obj = RequestDispatcher.getRequestDispatcher(adptGrpName).handle(adptName, message, prop); - obj = doPostFilters(adptGrpName, adptName, obj, prop, request, response); - } catch (HttpStatusException e) { // inbound error - logger.warn(LOG_PREFIX + transactionId + "-" + adptGrpName + "-" + adptName + ">>" + e.getMessage(), e); - throw e; - } catch (JwtAuthException e) { // filter error - logger.error(LOG_PREFIX + transactionId + "-" + adptGrpName + "-" + adptName + ">>" + e.getMessage(), e); - UnkownMessageLogUtils.logUnkownMessage(adptGrpName, adptName, message, prop, request, response, - "RECEAIIRP202", e); - throw e; - } catch (Exception e) { // filter error - logger.error(LOG_PREFIX + transactionId + "-" + adptGrpName + "-" + adptName + ">>" + e.getMessage(), e); - UnkownMessageLogUtils.logUnkownMessage(adptGrpName, adptName, message, prop, request, response, - "RECEAIIRP201", e); - throw e; - } - - if (obj == null) { - return null; - } else if (obj instanceof byte[]) { - return (byte[]) obj; - } else if (obj instanceof String) { - return (String) obj; - } else { - throw new Exception("RECEAIAHA001"); + + Object obj = null; + try { + message = doPreFilters(adptGrpName, adptName, message, prop, request, response); + obj = RequestDispatcher.getRequestDispatcher(adptGrpName).handle(adptName, message, prop); + obj = doPostFilters(adptGrpName, adptName, obj, prop, request, response); + } catch (HttpStatusException e) { // inbound error + logger.warn(LOG_PREFIX + transactionId + "-" + adptGrpName + "-" + adptName + ">>" + e.getMessage(), e); + throw e; + } catch (JwtAuthException e) { // filter error + logger.error(LOG_PREFIX + transactionId + "-" + adptGrpName + "-" + adptName + ">>" + e.getMessage(), e); + UnkownMessageLogUtils.logUnkownMessage(adptGrpName, adptName, message, prop, request, response, + "RECEAIIRP202", e); + throw e; + } catch (Exception e) { // filter error + logger.error(LOG_PREFIX + transactionId + "-" + adptGrpName + "-" + adptName + ">>" + e.getMessage(), e); + UnkownMessageLogUtils.logUnkownMessage(adptGrpName, adptName, message, prop, request, response, + "RECEAIIRP201", e); + throw e; + } + + if (obj == null) { + return null; + } else if (obj instanceof byte[]) { + return (byte[]) obj; + } else if (obj instanceof String) { + return (String) obj; + } else { + throw new Exception("RECEAIAHA001"); + } + } finally { + if(bMDCput) + MDC.remove(Logger.DISCRIMINATOR); } } diff --git a/src/main/java/com/eactive/eai/common/util/HttpAdapterExtraLogUtil.java b/src/main/java/com/eactive/eai/common/util/HttpAdapterExtraLogUtil.java index 722fb5b..4d3b341 100644 --- a/src/main/java/com/eactive/eai/common/util/HttpAdapterExtraLogUtil.java +++ b/src/main/java/com/eactive/eai/common/util/HttpAdapterExtraLogUtil.java @@ -72,6 +72,9 @@ public class HttpAdapterExtraLogUtil { } httpAdapterExtraLogVo.setHeaderList(headerVoList); httpAdapterExtraLogVo.setHttpStatus(httpStatus); + + logger.debug("[{}] Insert HTTP Log. - {}", guid, httpAdapterExtraLogVo); + if(ElinkConfig.isUseAsyncLogging()) { AsyncHttpLoggingPoolManager.getInstance().publish(httpAdapterExtraLogVo); } else { diff --git a/src/main/java/com/eactive/eai/common/util/TxFileLogger.java b/src/main/java/com/eactive/eai/common/util/TxFileLogger.java index 6e72234..bfda5d3 100644 --- a/src/main/java/com/eactive/eai/common/util/TxFileLogger.java +++ b/src/main/java/com/eactive/eai/common/util/TxFileLogger.java @@ -4,9 +4,8 @@ import java.util.Properties; public class TxFileLogger { - private static Logger siftLogger = Logger.getLogger(Logger.LOGGER_SIFT); - public static void logTxFile(Properties transactionProp, String message, String prefix) { + Logger siftLogger = Logger.getLogger(Logger.LOGGER_SIFT); if (siftLogger.isInfoEnabled()) { siftLogger.info(prefix + message); if (siftLogger.isDebugEnabled())