REST Header 로그에 송신 Body 출력할 수 있는 기능 추가

This commit is contained in:
curry772
2026-07-09 16:25:19 +09:00
parent 46463a27a4
commit 47cb243ff4
2 changed files with 28 additions and 10 deletions
@@ -33,9 +33,11 @@ import com.eactive.eai.common.TransactionContextKeys;
import com.eactive.eai.common.exception.ExceptionUtil; import com.eactive.eai.common.exception.ExceptionUtil;
import com.eactive.eai.common.server.EAIServerManager; import com.eactive.eai.common.server.EAIServerManager;
import com.eactive.eai.common.util.DatetimeUtil; import com.eactive.eai.common.util.DatetimeUtil;
import com.eactive.eai.common.util.HttpAdapterExtraLogUtil;
import com.eactive.eai.common.util.InboundErrorLogger; import com.eactive.eai.common.util.InboundErrorLogger;
import com.eactive.eai.common.util.Logger; import com.eactive.eai.common.util.Logger;
import com.eactive.eai.common.util.MessageUtil; import com.eactive.eai.common.util.MessageUtil;
import com.eactive.eai.common.util.RestSendBodyLogUtils;
import com.eactive.eai.common.util.TxFileLogger; import com.eactive.eai.common.util.TxFileLogger;
import com.eactive.eai.common.util.TxSiftContext; import com.eactive.eai.common.util.TxSiftContext;
import com.eactive.eai.common.util.UUIDGenerator; import com.eactive.eai.common.util.UUIDGenerator;
@@ -169,6 +171,14 @@ public class DJBApiAdapterController implements HttpAdapterServiceKey {
responseData = responseErrorMsg; responseData = responseErrorMsg;
} finally { } finally {
// 어댑터 HTTP 로그에 응답 body 출력
if (RestSendBodyLogUtils.isBodyLoggingApi(transactionProp.getProperty("API_SERVICE_CODE"))) {
String trimmedBody = RestSendBodyLogUtils.getBodyByMaxSize(responseData);
transactionProp.setProperty(HttpAdapterExtraLogUtil.BODY_FIELD_NAME, trimmedBody);
}
servletRequest.setAttribute(TransactionContextKeys.TRANSACTION_PROP, transactionProp);
/** /**
* 로깅 인터셉터에 데이터를 전달하기 위한 처리 이미 거래처리가 끝나서 영향도가 없을만한 servletRequest에 Attribute로 전달 * 로깅 인터셉터에 데이터를 전달하기 위한 처리 이미 거래처리가 끝나서 영향도가 없을만한 servletRequest에 Attribute로 전달
* 추후 더 좋은방법이 생길경우 개선 요망 * 추후 더 좋은방법이 생길경우 개선 요망
@@ -1,19 +1,22 @@
package com.eactive.eai.adapter.interceptor; package com.eactive.eai.adapter.interceptor;
import com.eactive.eai.adapter.http.client.HttpClientAdapterServiceKey; import java.util.HashMap;
import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey; import java.util.List;
import com.eactive.eai.common.TransactionContextKeys; import java.util.Map;
import com.eactive.eai.common.util.HttpAdapterExtraLogUtil; import java.util.Properties;
import com.eactive.eai.common.util.Logger;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest; import com.eactive.eai.adapter.http.client.HttpClientAdapterServiceKey;
import javax.servlet.http.HttpServletResponse; import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey;
import java.util.HashMap; import com.eactive.eai.common.TransactionContextKeys;
import java.util.Map; import com.eactive.eai.common.logger.HttpAdapterExtraHeaderVo;
import java.util.Properties; import com.eactive.eai.common.util.HttpAdapterExtraLogUtil;
import com.eactive.eai.common.util.Logger;
public class HttpResponseLoggingInterceptor implements HandlerInterceptor { public class HttpResponseLoggingInterceptor implements HandlerInterceptor {
@@ -56,6 +59,11 @@ public class HttpResponseLoggingInterceptor implements HandlerInterceptor {
headerMap.put(headerName, headerValue); headerMap.put(headerName, headerValue);
} }
String body = transactionProp.getProperty(HttpAdapterExtraLogUtil.BODY_FIELD_NAME);
if (StringUtils.isNotEmpty(body)) {
headerMap.put(HttpAdapterExtraLogUtil.BODY_FIELD_NAME, body);
}
int httpStatusCode = response.getStatus(); int httpStatusCode = response.getStatus();
HttpAdapterExtraLogUtil.insertHttpAdapterExtraLog(uuid, 400, adapterGroupName, adapterName, headerMap, url, method, httpStatusCode); HttpAdapterExtraLogUtil.insertHttpAdapterExtraLog(uuid, 400, adapterGroupName, adapterName, headerMap, url, method, httpStatusCode);
} }