거래파일로그 기능 추가
- HTTP Inbound 거래도 출력되도록 수정 - HTTP Header 파일로그 추가
This commit is contained in:
@@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.slf4j.MDC;
|
||||||
|
|
||||||
import com.eactive.eai.adapter.AdapterGroupVO;
|
import com.eactive.eai.adapter.AdapterGroupVO;
|
||||||
import com.eactive.eai.adapter.AdapterManager;
|
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.HttpAdapterFilterFactory;
|
||||||
import com.eactive.eai.adapter.http.dynamic.filter.HttpAdapterFilterType;
|
import com.eactive.eai.adapter.http.dynamic.filter.HttpAdapterFilterType;
|
||||||
import com.eactive.eai.adapter.http.dynamic.filter.JwtAuthException;
|
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.Logger;
|
||||||
|
import com.eactive.eai.common.util.UUIDGenerator;
|
||||||
|
|
||||||
public abstract class HttpAdapterServiceSupport implements HttpAdapterService, HttpAdapterServiceKey {
|
public abstract class HttpAdapterServiceSupport implements HttpAdapterService, HttpAdapterServiceKey {
|
||||||
private static final String LOG_PREFIX = "HttpAdapterServiceSupport] ";
|
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,
|
public Object service(String adptGrpName, String adptName, Object message, Properties prop,
|
||||||
HttpServletRequest request, HttpServletResponse response) throws Exception {
|
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(MDC.get(Logger.DISCRIMINATOR) == null) {
|
||||||
if (StringUtils.isNotBlank(transactionId)) {
|
MDC.put(Logger.DISCRIMINATOR, uuid);
|
||||||
prop.put(HttpClientAdapterServiceKey.TRANSACTION_ID, transactionId);
|
bMDCput = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
String clientId = request.getHeader(HEADER_NAME_CLIENT_ID);
|
String transactionId = request.getHeader(HttpClientAdapterServiceKey.TRANSACTION_ID);
|
||||||
if (StringUtils.isNotBlank(clientId)) {
|
if (StringUtils.isNotBlank(transactionId)) {
|
||||||
prop.put(PROPERTIES_NAME_CLIENT_ID, clientId);
|
prop.put(HttpClientAdapterServiceKey.TRANSACTION_ID, transactionId);
|
||||||
}
|
}
|
||||||
|
|
||||||
String instanceId = request.getHeader(HttpClientAdapterServiceKey.INSTANCE_ID);
|
try {
|
||||||
if (StringUtils.isNotBlank(instanceId)) {
|
String clientId = request.getHeader(HEADER_NAME_CLIENT_ID);
|
||||||
prop.put(HttpClientAdapterServiceKey.INSTANCE_ID, instanceId);
|
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 {
|
||||||
Object obj = null;
|
message = doPreFilters(adptGrpName, adptName, message, prop, request, response);
|
||||||
try {
|
obj = RequestDispatcher.getRequestDispatcher(adptGrpName).handle(adptName, message, prop);
|
||||||
message = doPreFilters(adptGrpName, adptName, message, prop, request, response);
|
obj = doPostFilters(adptGrpName, adptName, obj, prop, request, response);
|
||||||
obj = RequestDispatcher.getRequestDispatcher(adptGrpName).handle(adptName, message, prop);
|
} catch (HttpStatusException e) { // inbound error
|
||||||
obj = doPostFilters(adptGrpName, adptName, obj, prop, request, response);
|
logger.warn(LOG_PREFIX + transactionId + "-" + adptGrpName + "-" + adptName + ">>" + e.getMessage(), e);
|
||||||
} catch (HttpStatusException e) { // inbound error
|
throw e;
|
||||||
logger.warn(LOG_PREFIX + transactionId + "-" + adptGrpName + "-" + adptName + ">>" + e.getMessage(), e);
|
} catch (JwtAuthException e) { // filter error
|
||||||
throw e;
|
logger.error(LOG_PREFIX + transactionId + "-" + adptGrpName + "-" + adptName + ">>" + e.getMessage(), e);
|
||||||
} catch (JwtAuthException e) { // filter error
|
UnkownMessageLogUtils.logUnkownMessage(adptGrpName, adptName, message, prop, request, response,
|
||||||
logger.error(LOG_PREFIX + transactionId + "-" + adptGrpName + "-" + adptName + ">>" + e.getMessage(), e);
|
"RECEAIIRP202", e);
|
||||||
UnkownMessageLogUtils.logUnkownMessage(adptGrpName, adptName, message, prop, request, response,
|
throw e;
|
||||||
"RECEAIIRP202", e);
|
} catch (Exception e) { // filter error
|
||||||
throw e;
|
logger.error(LOG_PREFIX + transactionId + "-" + adptGrpName + "-" + adptName + ">>" + e.getMessage(), e);
|
||||||
} catch (Exception e) { // filter error
|
UnkownMessageLogUtils.logUnkownMessage(adptGrpName, adptName, message, prop, request, response,
|
||||||
logger.error(LOG_PREFIX + transactionId + "-" + adptGrpName + "-" + adptName + ">>" + e.getMessage(), e);
|
"RECEAIIRP201", e);
|
||||||
UnkownMessageLogUtils.logUnkownMessage(adptGrpName, adptName, message, prop, request, response,
|
throw e;
|
||||||
"RECEAIIRP201", e);
|
}
|
||||||
throw e;
|
|
||||||
}
|
if (obj == null) {
|
||||||
|
return null;
|
||||||
if (obj == null) {
|
} else if (obj instanceof byte[]) {
|
||||||
return null;
|
return (byte[]) obj;
|
||||||
} else if (obj instanceof byte[]) {
|
} else if (obj instanceof String) {
|
||||||
return (byte[]) obj;
|
return (String) obj;
|
||||||
} else if (obj instanceof String) {
|
} else {
|
||||||
return (String) obj;
|
throw new Exception("RECEAIAHA001");
|
||||||
} else {
|
}
|
||||||
throw new Exception("RECEAIAHA001");
|
} finally {
|
||||||
|
if(bMDCput)
|
||||||
|
MDC.remove(Logger.DISCRIMINATOR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,9 @@ public class HttpAdapterExtraLogUtil {
|
|||||||
}
|
}
|
||||||
httpAdapterExtraLogVo.setHeaderList(headerVoList);
|
httpAdapterExtraLogVo.setHeaderList(headerVoList);
|
||||||
httpAdapterExtraLogVo.setHttpStatus(httpStatus);
|
httpAdapterExtraLogVo.setHttpStatus(httpStatus);
|
||||||
|
|
||||||
|
logger.debug("[{}] Insert HTTP Log. - {}", guid, httpAdapterExtraLogVo);
|
||||||
|
|
||||||
if(ElinkConfig.isUseAsyncLogging()) {
|
if(ElinkConfig.isUseAsyncLogging()) {
|
||||||
AsyncHttpLoggingPoolManager.getInstance().publish(httpAdapterExtraLogVo);
|
AsyncHttpLoggingPoolManager.getInstance().publish(httpAdapterExtraLogVo);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -4,9 +4,8 @@ import java.util.Properties;
|
|||||||
|
|
||||||
public class TxFileLogger {
|
public class TxFileLogger {
|
||||||
|
|
||||||
private static Logger siftLogger = Logger.getLogger(Logger.LOGGER_SIFT);
|
|
||||||
|
|
||||||
public static void logTxFile(Properties transactionProp, String message, String prefix) {
|
public static void logTxFile(Properties transactionProp, String message, String prefix) {
|
||||||
|
Logger siftLogger = Logger.getLogger(Logger.LOGGER_SIFT);
|
||||||
if (siftLogger.isInfoEnabled()) {
|
if (siftLogger.isInfoEnabled()) {
|
||||||
siftLogger.info(prefix + message);
|
siftLogger.info(prefix + message);
|
||||||
if (siftLogger.isDebugEnabled())
|
if (siftLogger.isDebugEnabled())
|
||||||
|
|||||||
Reference in New Issue
Block a user