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
-
+