Rest일떄 400 http헤더 로깅 추가, 및 interceptor 동작하는지 확인 로그 추가.
This commit is contained in:
@@ -20,6 +20,7 @@ import com.eactive.eai.adapter.AdapterManager;
|
|||||||
import com.eactive.eai.adapter.AdapterPropManager;
|
import com.eactive.eai.adapter.AdapterPropManager;
|
||||||
import com.eactive.eai.adapter.AdapterVO;
|
import com.eactive.eai.adapter.AdapterVO;
|
||||||
import com.eactive.eai.adapter.http.HttpStatusException;
|
import com.eactive.eai.adapter.http.HttpStatusException;
|
||||||
|
import com.eactive.eai.adapter.http.client.HttpClientAdapterServiceKey;
|
||||||
import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey;
|
import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey;
|
||||||
import com.eactive.eai.adapter.http.dynamic.HttpDynamicInAdapterManager;
|
import com.eactive.eai.adapter.http.dynamic.HttpDynamicInAdapterManager;
|
||||||
import com.eactive.eai.adapter.http.dynamic.HttpDynamicInAdapterUri;
|
import com.eactive.eai.adapter.http.dynamic.HttpDynamicInAdapterUri;
|
||||||
@@ -31,6 +32,7 @@ import com.eactive.eai.common.server.EAIServerManager;
|
|||||||
import com.eactive.eai.common.stdmessage.STDMessageManager;
|
import com.eactive.eai.common.stdmessage.STDMessageManager;
|
||||||
import com.eactive.eai.common.stdmessage.STDMsgInfoAddOnVO;
|
import com.eactive.eai.common.stdmessage.STDMsgInfoAddOnVO;
|
||||||
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;
|
||||||
@@ -168,6 +170,22 @@ public class ApiAdapterController implements HttpAdapterServiceKey {
|
|||||||
responseEntity = ResponseEntity.ok().contentType(mediaType).body(responseData);
|
responseEntity = ResponseEntity.ok().contentType(mediaType).body(responseData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!"ASYNC".equals(responseType)) {
|
||||||
|
String uuid = transactionProp.getProperty(TransactionContextKeys.TRANSACTION_UUID);
|
||||||
|
String url = transactionProp.getProperty(HttpClientAdapterServiceKey.INBOUND_EXTURI);
|
||||||
|
String method = transactionProp.getProperty(HttpClientAdapterServiceKey.INBOUND_METHOD);
|
||||||
|
int httpStatusCode = servletResponse.getStatus();
|
||||||
|
|
||||||
|
Map<Object, Object> headerMap = new HashMap<>();
|
||||||
|
// 응답 헤더 로깅
|
||||||
|
for (String headerName : servletResponse.getHeaderNames()) {
|
||||||
|
String headerValue = servletResponse.getHeader(headerName);
|
||||||
|
headerMap.put(headerName, headerValue);
|
||||||
|
}
|
||||||
|
HttpAdapterExtraLogUtil.insertHttpAdapterExtraLog(uuid, 400, adapterGroupName, adapterName, headerMap, url, method, httpStatusCode);
|
||||||
|
}
|
||||||
|
|
||||||
} catch (HttpStatusException e) {
|
} catch (HttpStatusException e) {
|
||||||
logger.warn("ApiAdapterController] " + adapterGroupName + "-" + adapterName + ">>" + e.getMessage());
|
logger.warn("ApiAdapterController] " + adapterGroupName + "-" + adapterName + ">>" + e.getMessage());
|
||||||
String errorMsg = MessageUtil.makeErrorMessageByMessageType(adptMsgType, encode, MessageUtil.ERROR_CODE_AP_ERROR,
|
String errorMsg = MessageUtil.makeErrorMessageByMessageType(adptMsgType, encode, MessageUtil.ERROR_CODE_AP_ERROR,
|
||||||
@@ -189,7 +207,7 @@ public class ApiAdapterController implements HttpAdapterServiceKey {
|
|||||||
* 이미 거래처리가 끝나서 영향도가 없을만한 servletRequest에 Attribute로 전달
|
* 이미 거래처리가 끝나서 영향도가 없을만한 servletRequest에 Attribute로 전달
|
||||||
* 추후 더 좋은방법이 생길경우 개선 요망
|
* 추후 더 좋은방법이 생길경우 개선 요망
|
||||||
*/
|
*/
|
||||||
servletRequest.setAttribute(TransactionContextKeys.TRANSACTION_PROP, transactionProp);
|
servletRequest.setAttribute(TransactionContextKeys.TRANSACTION_PROP, transactionProp);
|
||||||
}
|
}
|
||||||
return responseEntity;
|
return responseEntity;
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-1
@@ -4,6 +4,8 @@ import com.eactive.eai.adapter.http.client.HttpClientAdapterServiceKey;
|
|||||||
import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey;
|
import com.eactive.eai.adapter.http.dynamic.HttpAdapterServiceKey;
|
||||||
import com.eactive.eai.common.TransactionContextKeys;
|
import com.eactive.eai.common.TransactionContextKeys;
|
||||||
import com.eactive.eai.common.util.HttpAdapterExtraLogUtil;
|
import com.eactive.eai.common.util.HttpAdapterExtraLogUtil;
|
||||||
|
import com.eactive.eai.common.util.Logger;
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.springframework.web.servlet.HandlerInterceptor;
|
import org.springframework.web.servlet.HandlerInterceptor;
|
||||||
|
|
||||||
@@ -14,9 +16,14 @@ import java.util.Map;
|
|||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
public class HttpResponseLoggingInterceptor implements HandlerInterceptor {
|
public class HttpResponseLoggingInterceptor implements HandlerInterceptor {
|
||||||
|
|
||||||
|
static Logger logger = Logger.getLogger(Logger.LOGGER_DEFAULT);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
||||||
|
|
||||||
|
logger.debug("httpHeader logging Interceptor start");
|
||||||
|
|
||||||
Properties transactionProp = (Properties) request.getAttribute(TransactionContextKeys.TRANSACTION_PROP);
|
Properties transactionProp = (Properties) request.getAttribute(TransactionContextKeys.TRANSACTION_PROP);
|
||||||
if(transactionProp == null || "ASYN".equals(transactionProp.getProperty(HttpAdapterServiceKey.INBOUND_SYNC_ASYNC_TYPE))){
|
if(transactionProp == null || "ASYN".equals(transactionProp.getProperty(HttpAdapterServiceKey.INBOUND_SYNC_ASYNC_TYPE))){
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user