diff --git a/pom.xml b/pom.xml index e8cfd97bbc4b92ae3837ad28b1f630ad1d11b929..e69dc863fe018b66c4a3b9e7e7bd4d1173f30ee6 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ org.opengroup.osdu core-lib-azure jar - 0.0.18 + 0.0.19 core-lib-azure diff --git a/src/main/java/org/opengroup/osdu/azure/filters/Slf4jMDCFilter.java b/src/main/java/org/opengroup/osdu/azure/filters/Slf4jMDCFilter.java new file mode 100644 index 0000000000000000000000000000000000000000..49014ebe3be97944afdbe882a519a25796ac73da --- /dev/null +++ b/src/main/java/org/opengroup/osdu/azure/filters/Slf4jMDCFilter.java @@ -0,0 +1,53 @@ +package org.opengroup.osdu.azure.filters; + +import org.opengroup.osdu.core.common.model.http.DpsHeaders; +import org.slf4j.MDC; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.stereotype.Component; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + +/** + * MDC Filter for logging. + */ +@Component +@ConditionalOnProperty(value = "logging.mdccontext.enabled", havingValue = "true", matchIfMissing = false) +public class Slf4jMDCFilter implements Filter { + @Autowired + private DpsHeaders dpsHeaders; + + /** + * Filter logic. + * @param servletRequest Request object. + * @param servletResponse Response object. + * @param filterChain Filter Chain object. + * @throws IOException + * @throws ServletException + */ + @Override + public void doFilter(final ServletRequest servletRequest, final ServletResponse servletResponse, + final FilterChain filterChain) throws IOException, ServletException { + MDC.setContextMap(getContextMap()); + filterChain.doFilter(servletRequest, servletResponse); + MDC.clear(); + } + + /** + * Method to create context map for mdc. + * @return Context map. + */ + private Map getContextMap() { + final Map contextMap = new HashMap<>(); + contextMap.put(DpsHeaders.CORRELATION_ID, dpsHeaders.getCorrelationId()); + contextMap.put(DpsHeaders.DATA_PARTITION_ID, dpsHeaders.getPartitionId()); + return contextMap; + } +} diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml index 4076cec31ddbcefb2c3888d6a38eda58ceb2911a..20a250e9d36661139346219cbbca05e4f2a6fe73 100644 --- a/src/main/resources/log4j2.xml +++ b/src/main/resources/log4j2.xml @@ -18,12 +18,12 @@ - %d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${hostName} --- [%15.15t] %-40.40c{1.} : %m%n%ex + %d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${hostName} --- [%15.15t] %-40.40c{1.} correlation-id=%X{correlation-id} data-partition-id=%X{data-partition-id}: %m%n%ex - +