400 http헤더 로깅 위치 변경 -> finally 에서 예외 발생시에도 로깅하도록,

HttpResponseLoggingInterceptor 상세 로그 추가.
This commit is contained in:
cho
2026-02-03 16:18:45 +09:00
parent 03456a966e
commit a64764bedf
2 changed files with 19 additions and 15 deletions
@@ -171,21 +171,6 @@ public class ApiAdapterController implements HttpAdapterServiceKey {
}
}
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) {
logger.warn("ApiAdapterController] " + adapterGroupName + "-" + adapterName + ">>" + e.getMessage());
String errorMsg = MessageUtil.makeErrorMessageByMessageType(adptMsgType, encode, MessageUtil.ERROR_CODE_AP_ERROR,
@@ -208,6 +193,21 @@ public class ApiAdapterController implements HttpAdapterServiceKey {
* 추후 더 좋은방법이 생길경우 개선 요망
*/
servletRequest.setAttribute(TransactionContextKeys.TRANSACTION_PROP, transactionProp);
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);
}
}
return responseEntity;
}
@@ -26,6 +26,7 @@ public class HttpResponseLoggingInterceptor implements HandlerInterceptor {
Properties transactionProp = (Properties) request.getAttribute(TransactionContextKeys.TRANSACTION_PROP);
if(transactionProp == null || "ASYN".equals(transactionProp.getProperty(HttpAdapterServiceKey.INBOUND_SYNC_ASYNC_TYPE))){
logger.debug("httpHeader logging Interceptor ASYNC");
return;
}
@@ -34,6 +35,8 @@ public class HttpResponseLoggingInterceptor implements HandlerInterceptor {
String adapterName = transactionProp.getProperty(HttpClientAdapterServiceKey.ADAPTER_NAME);
String url = transactionProp.getProperty(HttpClientAdapterServiceKey.INBOUND_EXTURI);
String method = transactionProp.getProperty(HttpClientAdapterServiceKey.INBOUND_METHOD);
logger.debug(String.format( "httpHeader logging Interceptor uuid=%s, adapterGroupName=%s, adapterName=%s, url=%s, method=%s", uuid, adapterGroupName, adapterName, url, method));
if(StringUtils.isBlank(uuid) || StringUtils.isBlank(adapterGroupName)){
return;
@@ -43,6 +46,7 @@ public class HttpResponseLoggingInterceptor implements HandlerInterceptor {
// 응답 헤더 로깅
for (String headerName : response.getHeaderNames()) {
String headerValue = response.getHeader(headerName);
logger.debug(String.format( "httpHeader logging Interceptor headerKey=%s, headerValue=%s", headerName, headerValue));
headerMap.put(headerName, headerValue);
}