import org.onap.so.openstack.exceptions.MsoException;
 import org.onap.so.openstack.exceptions.MsoOpenstackException;
 import org.onap.so.openstack.mappers.StackInfoMapper;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
     private RestClient getMulticloudClient(String endpoint, String tenantId) {
         HttpClient client = null;
         try {
-            client = httpClientFactory.newJsonClient(new URL(endpoint), TargetEntity.MULTICLOUD);
+            client = httpClientFactory.newJsonClient(new URL(endpoint), ONAPComponents.MULTICLOUD);
             if (tenantId != null && !tenantId.isEmpty()) {
                 client.addAdditionalHeader("Project", tenantId);
             }
 
 
 @SpringBootApplication(scanBasePackages = {"org.onap.so.adapters.catalogdb", "org.onap.so.db.catalog.client",
         "org.onap.so.logging.jaxrs.filter", "org.onap.so.logging.spring.interceptor", "org.onap.so.client",
-        "org.onap.so.configuration", "org.onap.so.db"})
+        "org.onap.so.configuration", "org.onap.so.db", "org.onap.logging.filter"})
 @EnableJpaRepositories("org.onap.so.db.catalog.data.repository")
 @EntityScan("org.onap.so.db.catalog.beans")
 @EnableScheduling
 
 import javax.annotation.PostConstruct;
 import javax.ws.rs.ApplicationPath;
 import org.glassfish.jersey.server.ResourceConfig;
+import org.onap.logging.filter.base.Constants;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.onap.so.adapters.catalogdb.rest.CatalogDbAdapterRest;
 import org.onap.so.adapters.catalogdb.rest.ServiceRestImpl;
 import org.onap.so.adapters.catalogdb.rest.VnfRestImpl;
-import org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging;
+import org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter;
 import org.springframework.context.annotation.Configuration;
 import io.swagger.jaxrs.config.BeanConfig;
 import io.swagger.jaxrs.listing.ApiListingResource;
 
     @PostConstruct
     public void setUp() {
+        System.setProperty(Constants.Property.PARTNER_NAME, ONAPComponents.CATALOG_DB.toString());
         register(CatalogDbAdapterRest.class);
         register(ApiListingResource.class);
         register(SwaggerSerializers.class);
-        register(JaxRsFilterLogging.class);
+        register(SOAuditLogContainerFilter.class);
         register(ServiceRestImpl.class);
         register(VnfRestImpl.class);
         BeanConfig beanConfig = new BeanConfig();
 
 package org.onap.so.adapters.catalogdb;
 
 
-import org.onap.so.logging.spring.interceptor.LoggingInterceptor;
+import org.onap.logging.filter.spring.LoggingInterceptor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
 import org.springframework.web.servlet.handler.MappedInterceptor;
 
 @Configuration
+@ComponentScan(basePackages = {"org.onap.logging.filter"})
 public class WebMvcConfig extends WebMvcConfigurerAdapter {
 
     @Autowired
 
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.onap.so.logger.MdcConstants.ENDTIME;
-import static org.onap.so.logger.MdcConstants.INVOCATION_ID;
-import static org.onap.so.logger.MdcConstants.PARTNERNAME;
-import static org.onap.so.logger.MdcConstants.RESPONSECODE;
-import static org.onap.so.logger.MdcConstants.RESPONSEDESC;
-import static org.onap.so.logger.MdcConstants.SERVICE_NAME;
-import static org.onap.so.logger.MdcConstants.STATUSCODE;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.INVOCATION_ID;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.LOG_TIMESTAMP;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.PARTNER_NAME;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.RESPONSE_CODE;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.SERVICE_NAME;
 import java.io.IOException;
 import java.util.Map;
 import javax.ws.rs.core.MediaType;
 
 
         for (ILoggingEvent logEvent : TestAppender.events)
-            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging")
+            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter")
                     && logEvent.getMarker().getName().equals("ENTRY")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(INVOCATION_ID));
-                assertEquals("UNKNOWN", mdc.get(PARTNERNAME));
+                assertEquals("UNKNOWN", mdc.get(PARTNER_NAME));
                 assertEquals("v2/vfModules", mdc.get(SERVICE_NAME));
-                assertEquals("INPROGRESS", mdc.get(STATUSCODE));
-            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging")
+                assertEquals("INPROGRESS", mdc.get(RESPONSE_STATUS_CODE));
+            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter")
                     && logEvent.getMarker().getName().equals("EXIT")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
-                assertNotNull(mdc.get(ENDTIME));
+                assertNotNull(mdc.get(LOG_TIMESTAMP));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(INVOCATION_ID));
-                assertEquals("500", mdc.get(RESPONSECODE));
-                assertEquals("UNKNOWN", mdc.get(PARTNERNAME));
+                assertEquals("500", mdc.get(RESPONSE_CODE));
+                assertEquals("UNKNOWN", mdc.get(PARTNER_NAME));
                 assertEquals("v2/vfModules", mdc.get(SERVICE_NAME));
-                assertEquals("ERROR", mdc.get(STATUSCODE));
-                assertNotNull(mdc.get(RESPONSEDESC));
+                assertEquals("ERROR", mdc.get(RESPONSE_STATUS_CODE));
+                assertNotNull(mdc.get(RESPONSE_DESCRIPTION));
             }
     }
 
 
 import org.onap.so.objects.audit.AAIObjectAudit;
 import org.onap.so.objects.audit.AAIObjectAuditList;
 import org.onap.so.utils.ExternalTaskUtils;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
             return false;
         }
     }
-
 }
 
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.audit.beans.AuditInventory;
 import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
+import org.onap.so.externaltasks.logging.AuditMDCSetup;
 import org.onap.so.objects.audit.AAIObjectAuditList;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
     @Autowired
     public HeatStackAudit heatStackAudit;
 
+    @Autowired
+    private AuditMDCSetup mdcSetup;
+
     protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
-        setupMDC(externalTask);
+        mdcSetup.setupMDC(externalTask);
         AuditInventory auditInventory = externalTask.getVariable("auditInventory");
         Map<String, Object> variables = new HashMap<>();
         boolean success = false;
         try {
-            logger.info("Executing External Task Audit Inventory, Retry Number: {} \n {}", auditInventory,
-                    externalTask.getRetries());
+            Integer retryCount = externalTask.getRetries();
+            logger.info("Executing External Task Audit Inventory, Retry Number: {} \n {}", auditInventory, retryCount);
             Optional<AAIObjectAuditList> auditListOpt = heatStackAudit.auditHeatStack(auditInventory.getCloudRegion(),
                     auditInventory.getCloudOwner(), auditInventory.getTenantId(), auditInventory.getHeatStackName());
             if (auditListOpt.isPresent()) {
             logger.error("Error during audit of stack", e);
         }
         variables.put("auditIsSuccessful", success);
+        mdcSetup.setElapsedTime();
+        String externalTaskId = externalTask.getId();
         if (success) {
             externalTaskService.complete(externalTask, variables);
-            logger.debug("The External Task Id: {}  Successful", externalTask.getId());
+            mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.COMPLETE.toString());
+            logger.debug("The External Task Id: {}  Successful", externalTaskId);
             logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
+            mdcSetup.clearClientMDCs();
         } else {
-            if (externalTask.getRetries() == null) {
+            Integer retryCount = externalTask.getRetries();
+            if (retryCount == null) {
                 logger.debug("The External Task Id: {}  Failed, Setting Retries to Default Start Value: {}",
-                        externalTask.getId(), getRetrySequence().length);
+                        externalTaskId, getRetrySequence().length);
                 externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI,
                         UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, getRetrySequence().length, 10000);
-            } else if (externalTask.getRetries() != null && externalTask.getRetries() - 1 == 0) {
-                logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTask.getId());
+            } else if (retryCount != null && retryCount - 1 == 0) {
                 externalTaskService.complete(externalTask, variables);
+                mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.ERROR.toString());
+                logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTaskId);
                 logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
+                mdcSetup.clearClientMDCs();
             } else {
                 logger.debug("The External Task Id: {}  Failed, Decrementing Retries: {} , Retry Delay: ",
-                        externalTask.getId(), externalTask.getRetries() - 1,
-                        calculateRetryDelay(externalTask.getRetries()));
+                        externalTaskId, retryCount - 1, calculateRetryDelay(retryCount));
                 externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI,
-                        UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, externalTask.getRetries() - 1,
-                        calculateRetryDelay(externalTask.getRetries()));
+                        UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, retryCount - 1,
+                        calculateRetryDelay(retryCount));
             }
-            logger.debug("The External Task Id: {} Failed", externalTask.getId());
+            logger.debug("The External Task Id: {} Failed", externalTaskId);
         }
     }
 
 
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.audit.beans.AuditInventory;
 import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
+import org.onap.so.externaltasks.logging.AuditMDCSetup;
 import org.onap.so.objects.audit.AAIObjectAuditList;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
     @Autowired
     protected HeatStackAudit heatStackAudit;
 
+    @Autowired
+    private AuditMDCSetup mdcSetup;
+
     @Autowired
     protected AuditVServer auditVservers;
 
     protected Environment env;
 
     protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
-        setupMDC(externalTask);
+        mdcSetup.setupMDC(externalTask);
         AuditInventory auditInventory = externalTask.getVariable("auditInventory");
         Map<String, Object> variables = new HashMap<>();
         boolean success = false;
         try {
-            logger.info("Executing External Task Delete Audit Inventory. Retry Number: {}", externalTask.getRetries());
+            Integer retryCount = externalTask.getRetries();
+            logger.info("Executing External Task Delete Audit Inventory. Retry Number: {}", retryCount);
             Optional<AAIObjectAuditList> auditListOpt = auditDataService.getStackDataFromRequestDb(auditInventory);
             if (auditListOpt.isPresent()) {
                 auditVservers.auditVservers(auditListOpt.get());
             logger.error("Error during audit of stack", e);
         }
         variables.put("auditIsSuccessful", success);
+        mdcSetup.setElapsedTime();
+        String externalTaskId = externalTask.getId();
         if (success) {
             externalTaskService.complete(externalTask, variables);
-            logger.debug("The External Task Id: {}  Successful", externalTask.getId());
+            mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.COMPLETE.toString());
+            logger.debug("The External Task Id: {}  Successful", externalTaskId);
             logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
+            mdcSetup.clearClientMDCs();
         } else {
-            if (externalTask.getRetries() == null) {
+            Integer retryCount = externalTask.getRetries();
+            if (retryCount == null) {
                 logger.debug("The External Task Id: {}  Failed, Setting Retries to Default Start Value: {}",
-                        externalTask.getId(), getRetrySequence().length);
+                        externalTaskId, getRetrySequence().length);
                 externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI,
                         UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, getRetrySequence().length, 10000);
-            } else if (externalTask.getRetries() != null && externalTask.getRetries() - 1 == 0) {
-                logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTask.getId());
+            } else if (retryCount != null && retryCount - 1 == 0) {
                 externalTaskService.complete(externalTask, variables);
+                mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.ERROR.toString());
+                logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTaskId);
                 logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
+                mdcSetup.clearClientMDCs();
             } else {
                 logger.debug("The External Task Id: {}  Failed, Decrementing Retries: {} , Retry Delay: ",
-                        externalTask.getId(), externalTask.getRetries() - 1,
-                        calculateRetryDelay(externalTask.getRetries()));
+                        externalTaskId, retryCount - 1, calculateRetryDelay(retryCount));
                 externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI,
-                        UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, externalTask.getRetries() - 1,
-                        calculateRetryDelay(externalTask.getRetries()));
+                        UNABLE_TO_FIND_ALL_V_SERVERS_AND_L_INTERACES_IN_A_AI, retryCount - 1,
+                        calculateRetryDelay(retryCount));
             }
-            logger.debug("The External Task Id: {} Failed", externalTask.getId());
+            logger.debug("The External Task Id: {} Failed", externalTaskId);
         }
     }
 
 
 import org.camunda.bpm.client.task.ExternalTaskService;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.audit.beans.AuditInventory;
+import org.onap.so.externaltasks.logging.AuditMDCSetup;
 import org.onap.so.objects.audit.AAIObjectAuditList;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
     @Autowired
     protected HeatStackAudit heatStackAudit;
 
+    @Autowired
+    private AuditMDCSetup mdcSetup;
+
     @Autowired
     protected AuditDataService auditDataService;
 
     protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
-        setupMDC(externalTask);
+        mdcSetup.setupMDC(externalTask);
         AuditInventory auditInventory = externalTask.getVariable("auditInventory");
         boolean success = false;
         Map<String, Object> variables = new HashMap<>();
         try {
+            Integer retryCount = externalTask.getRetries();
             logger.info("Executing External Task Query Audit Inventory. Audit Inventory: {} \n Retry Number: {}",
-                    auditInventory.toString(), externalTask.getRetries());
+                    auditInventory.toString(), retryCount);
 
             Optional<AAIObjectAuditList> auditList = heatStackAudit.queryHeatStack(auditInventory.getCloudOwner(),
                     auditInventory.getCloudRegion(), auditInventory.getTenantId(), auditInventory.getHeatStackName());
 
             if (auditList.isPresent()) {
+                mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.COMPLETE.toString());
                 success = true;
                 auditDataService.writeStackDataToRequestDb(auditInventory, auditList.get());
             }
+            mdcSetup.setElapsedTime();
+            String externalTaskId = externalTask.getId();
             if (success) {
                 externalTaskService.complete(externalTask, variables);
-                logger.debug("The External Task {}  was Successful", externalTask.getId());
+                mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.COMPLETE.toString());
+                logger.debug("The External Task {}  was Successful", externalTaskId);
                 logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
+                mdcSetup.clearClientMDCs();
             } else {
-                if (externalTask.getRetries() == null) {
+                if (retryCount == null) {
                     logger.debug("The External Task {} Failed. Setting Retries to Default Start Value: {}",
-                            externalTask.getId(), getRetrySequence().length);
+                            externalTaskId, getRetrySequence().length);
                     externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_V_SERVERS_IN_OPENSTACK,
                             UNABLE_TO_FIND_V_SERVERS_IN_OPENSTACK, getRetrySequence().length, 10000);
-                } else if (externalTask.getRetries() != null && externalTask.getRetries() - 1 == 0) {
-                    logger.debug("The External Task {} Failed. All Retries Exhausted", externalTask.getId());
+                } else if (retryCount != null && retryCount - 1 == 0) {
                     externalTaskService.complete(externalTask, variables);
+                    mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.ERROR.toString());
+                    logger.debug("The External Task {} Failed. All Retries Exhausted", externalTaskId);
                     logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
+                    mdcSetup.clearClientMDCs();
                 } else {
                     logger.debug("The External Task {} Failed. Decrementing Retries to {} , Retry Delay: ",
-                            externalTask.getId(), externalTask.getRetries() - 1,
-                            calculateRetryDelay(externalTask.getRetries()));
+                            externalTaskId, retryCount - 1, calculateRetryDelay(retryCount));
                     externalTaskService.handleFailure(externalTask, UNABLE_TO_FIND_V_SERVERS_IN_OPENSTACK,
-                            UNABLE_TO_FIND_V_SERVERS_IN_OPENSTACK, externalTask.getRetries() - 1,
-                            calculateRetryDelay(externalTask.getRetries()));
+                            UNABLE_TO_FIND_V_SERVERS_IN_OPENSTACK, retryCount - 1, calculateRetryDelay(retryCount));
                 }
-                logger.debug("The External Task {} Failed", externalTask.getId());
+                logger.debug("The External Task {} Failed", externalTaskId);
             }
         } catch (Exception e) {
             logger.error("Error during audit query of stack", e);
 
 import org.camunda.bpm.client.task.ExternalTaskService;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
+import org.onap.so.externaltasks.logging.AuditMDCSetup;
 import org.onap.so.objects.audit.AAIObjectAuditList;
 import org.onap.so.utils.ExternalTaskUtils;
 import org.slf4j.Logger;
     @Autowired
     CreateAAIInventory createInventory;
 
+    @Autowired
+    private AuditMDCSetup mdcSetup;
+
     protected void executeExternalTask(ExternalTask externalTask, ExternalTaskService externalTaskService) {
-        setupMDC(externalTask);
+        mdcSetup.setupMDC(externalTask);
         boolean success = true;
         boolean inventoryException = false;
         String auditInventoryString = externalTask.getVariable("auditInventoryResult");
         AAIObjectAuditList auditInventory = null;
+        String externalTaskId = externalTask.getId();
         try {
             GraphInventoryCommonObjectMapperProvider objectMapper = new GraphInventoryCommonObjectMapperProvider();
             auditInventory = objectMapper.getMapper().readValue(auditInventoryString, AAIObjectAuditList.class);
         } catch (Exception e) {
+            mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.ERROR.toString());
             logger.error("Error Parsing Audit Results", e);
         }
+        mdcSetup.setElapsedTime();
         if (auditInventory != null) {
+            Integer retryCount = externalTask.getRetries();
             try {
                 logger.info("Executing External Task Create Inventory, Retry Number: {} \n {}", auditInventory,
-                        externalTask.getRetries());
+                        retryCount);
                 createInventory.createInventory(auditInventory);
             } catch (InventoryException e) {
                 logger.error("Error during inventory of stack", e);
                 logger.error("Error during inventory of stack", e);
                 success = false;
             }
+            mdcSetup.setElapsedTime();
             if (success) {
                 externalTaskService.complete(externalTask);
-                logger.debug("The External Task Id: {}  Successful", externalTask.getId());
+                mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.COMPLETE.toString());
+                logger.debug("The External Task Id: {}  Successful", externalTaskId);
                 logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
+                mdcSetup.clearClientMDCs();
             } else if (inventoryException) {
-                logger.debug("The External Task Id: {}  Failed, Retry not needed", externalTask.getId());
+                mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.ERROR.toString());
+                logger.debug("The External Task Id: {}  Failed, Retry not needed", externalTaskId);
                 externalTaskService.handleBpmnError(externalTask, AAI_INVENTORY_FAILURE);
             } else {
-                if (externalTask.getRetries() == null) {
+                if (retryCount == null) {
                     logger.debug("The External Task Id: {}  Failed, Setting Retries to Default Start Value: {}",
-                            externalTask.getId(), getRetrySequence().length);
+                            externalTaskId, getRetrySequence().length);
                     externalTaskService.handleFailure(externalTask, UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI,
                             UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI, getRetrySequence().length, 10000);
-                } else if (externalTask.getRetries() != null && externalTask.getRetries() - 1 == 0) {
-                    logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTask.getId());
+                } else if (retryCount != null && retryCount - 1 == 0) {
                     externalTaskService.handleBpmnError(externalTask, AAI_INVENTORY_FAILURE);
+                    mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.ERROR.toString());
+                    logger.debug("The External Task Id: {}  Failed, All Retries Exhausted", externalTaskId);
                     logger.info(ONAPLogConstants.Markers.EXIT, "Exiting");
                 } else {
                     logger.debug("The External Task Id: {}  Failed, Decrementing Retries: {} , Retry Delay: ",
-                            externalTask.getId(), externalTask.getRetries() - 1,
-                            calculateRetryDelay(externalTask.getRetries()));
+                            externalTaskId, retryCount - 1, calculateRetryDelay(retryCount));
                     externalTaskService.handleFailure(externalTask, UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI,
-                            UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI, externalTask.getRetries() - 1,
-                            calculateRetryDelay(externalTask.getRetries()));
+                            UNABLE_TO_WRITE_ALL_INVENTORY_TO_A_AI, retryCount - 1, calculateRetryDelay(retryCount));
                 }
-                logger.debug("The External Task Id: {} Failed", externalTask.getId());
+                logger.debug("The External Task Id: {} Failed", externalTaskId);
             }
         } else {
-            logger.debug("The External Task Id: {}  Failed, No Audit Results Written", externalTask.getId());
+            logger.debug("The External Task Id: {}  Failed, No Audit Results Written", externalTaskId);
             externalTaskService.handleBpmnError(externalTask, AAI_INVENTORY_FAILURE);
         }
     }
-
-
 }
 
 package org.onap.so.adapters.openstack;
 
 import java.util.concurrent.Executor;
-import org.onap.so.logging.jaxrs.filter.MDCTaskDecorator;
+import org.onap.logging.filter.spring.MDCTaskDecorator;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.onap.so.audit.beans.AuditInventory;
+import org.onap.so.externaltasks.logging.AuditMDCSetup;
 import org.onap.so.objects.audit.AAIObjectAuditList;
 import org.springframework.core.env.Environment;
 import com.fasterxml.jackson.core.JsonParseException;
     @Mock
     private AuditDataService auditDataService;
 
+    @Mock
+    private AuditMDCSetup mdcSetup;
+
     private ObjectMapper objectMapper = new ObjectMapper();
 
     private AuditInventory auditInventory = new AuditInventory();
 
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.onap.so.client.graphinventory.GraphInventoryCommonObjectMapperProvider;
+import org.onap.so.externaltasks.logging.AuditMDCSetup;
 import org.onap.so.objects.audit.AAIObjectAudit;
 import org.onap.so.objects.audit.AAIObjectAuditList;
 import com.fasterxml.jackson.core.JsonProcessingException;
     @Mock
     ExternalTaskService externalTaskService;
 
+    @Mock
+    private AuditMDCSetup mdcSetup;
+
     @InjectMocks
     CreateInventoryTask inventoryTask;
 
 
 
 import java.time.Duration;
 import javax.sql.DataSource;
+import org.onap.logging.filter.base.Constants;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.Bean;
  *
  */
 
-@SpringBootApplication(scanBasePackages = {"org.onap.so"})
+@SpringBootApplication(scanBasePackages = {"org.onap.so", "org.onap.logging.filter"})
 @EnableScheduling
 @EnableMBeanExport(registration = RegistrationPolicy.IGNORE_EXISTING)
 public class MSORequestDBApplication {
     }
 
     public static void main(String... args) {
+        System.setProperty(Constants.Property.PARTNER_NAME, ONAPComponents.REQUEST_DB.toString());
         SpringApplication.run(MSORequestDBApplication.class, args);
         java.security.Security.setProperty("networkaddress.cache.ttl", "10");
         setLogsDir();
 
 package org.onap.so.adapters.requestsdb.application;
 
 
-import org.onap.so.logging.spring.interceptor.LoggingInterceptor;
+import org.onap.logging.filter.spring.LoggingInterceptor;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
 import org.springframework.web.servlet.handler.MappedInterceptor;
 
 @Configuration
+@ComponentScan(basePackages = {"org.onap.logging.filter"})
 public class WebMvcConfig extends WebMvcConfigurerAdapter {
 
     @Autowired
 
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.INSTANCE_UUID));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.INVOCATION_ID));
-                assertEquals("", mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+                assertEquals("UNKNOWN", mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
                 assertEquals("/services/RequestsDbAdapter", mdc.get(ONAPLogConstants.MDCs.SERVICE_NAME));
                 assertEquals("INPROGRESS", mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
             } else if (logEvent.getLoggerName().equals("org.onap.so.logging.cxf.interceptor.SOAPLoggingOutInterceptor")
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.INVOCATION_ID));
                 assertEquals(null, mdc.get(ONAPLogConstants.MDCs.RESPONSE_CODE));
-                assertEquals("", mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+                assertEquals("UNKNOWN", mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
                 assertEquals("/services/RequestsDbAdapter", mdc.get(ONAPLogConstants.MDCs.SERVICE_NAME));
-                assertEquals("COMPLETED", mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+                assertEquals("COMPLETE", mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
             }
     }
 
 
 import org.onap.so.adapters.sdnc.sdncrest.SNIROResponse;
 import org.onap.so.logging.cxf.interceptor.SOAPLoggingInInterceptor;
 import org.onap.so.logging.cxf.interceptor.SOAPLoggingOutInterceptor;
-import org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging;
+import org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.web.servlet.ServletRegistrationBean;
 import org.springframework.context.annotation.Bean;
     private Bus bus;
 
     @Autowired
-    private JaxRsFilterLogging jaxRsFilterLogging;
+    private SOAuditLogContainerFilter soAuditLogContainerFilter;
 
     @Autowired
     private SDNCAdapterPortType sdncAdapterPortImpl;
         endpoint.setServiceBeans(Arrays.<Object>asList(sniroResponse));
         endpoint.setAddress("/rest");
         endpoint.setFeatures(Arrays.asList(createSwaggerFeature(), new LoggingFeature()));
-        endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(mapper), jaxRsFilterLogging));
+        endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(mapper), soAuditLogContainerFilter));
         return endpoint.create();
     }
 
 
 package org.onap.so.adapters.sdnc;
 
 import java.util.concurrent.Executor;
-import org.onap.so.logging.jaxrs.filter.MDCTaskDecorator;
+import org.onap.logging.filter.spring.MDCTaskDecorator;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
 import org.apache.cxf.jaxrs.swagger.Swagger2Feature;
 import org.apache.cxf.transport.servlet.CXFServlet;
 import org.onap.so.adapters.vfc.rest.VfcAdapterRest;
-import org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging;
+import org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.web.servlet.ServletRegistrationBean;
 import org.springframework.context.annotation.Bean;
     private VfcAdapterRest vfcAdapterRest;
 
     @Autowired
-    private JaxRsFilterLogging jaxRsFilterLogging;
+    private SOAuditLogContainerFilter soAuditLogContainerFilter;
 
     @Autowired
     private ObjectMapper mapper;
         endpoint.setServiceBeans(Arrays.<Object>asList(vfcAdapterRest));
         endpoint.setAddress("/");
         endpoint.setFeatures(Arrays.asList(createSwaggerFeature(), new LoggingFeature()));
-        endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(mapper), jaxRsFilterLogging));
+        endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(mapper), soAuditLogContainerFilter));
         return endpoint.create();
     }
 
 
 import java.security.UnrecoverableKeyException;
 import java.security.cert.CertificateException;
 import java.util.Iterator;
+import java.util.ListIterator;
 import java.util.Map;
 import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 import org.onap.aai.domain.yang.EsrVnfm;
 import org.onap.so.adapters.vnfmadapter.extclients.vnfm.lcn.JSON;
 import org.onap.so.configuration.rest.BasicHttpHeadersProvider;
+import org.onap.so.logging.jaxrs.filter.SOSpringClientFilter;
 import org.onap.so.rest.service.HttpRestServiceProvider;
 import org.onap.so.rest.service.HttpRestServiceProviderImpl;
 import org.slf4j.Logger;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.core.io.Resource;
 import org.springframework.http.client.BufferingClientHttpRequestFactory;
+import org.springframework.http.client.ClientHttpRequestInterceptor;
 import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
 import org.springframework.http.converter.HttpMessageConverter;
 import org.springframework.http.converter.json.GsonHttpMessageConverter;
         }
     }
 
+    private void removeSpringClientFilter(final RestTemplate restTemplate) {
+        ListIterator<ClientHttpRequestInterceptor> interceptorIterator = restTemplate.getInterceptors().listIterator();
+        while (interceptorIterator.hasNext()) {
+            if (interceptorIterator.next() instanceof SOSpringClientFilter) {
+                interceptorIterator.remove();
+            }
+        }
+    }
+
 }
 
 import org.onap.so.asdc.activity.beans.ActivitySpecCreateResponse;
 import org.onap.so.client.HttpClient;
 import org.onap.so.client.HttpClientFactory;
-import org.onap.so.utils.TargetEntity;
+import org.onap.so.logger.LoggingAnchor;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
             String urlString = UriBuilder.fromUri(hostname).path(ACTIVITY_SPEC_URI).build().toString();
             URL url = new URL(urlString);
 
-            HttpClient httpClient = httpClientFactory.newJsonClient(url, TargetEntity.SDC);
+            HttpClient httpClient = httpClientFactory.newJsonClient(url, ONAPComponents.SDC);
             httpClient.addAdditionalHeader("Content-Type", ContentType.APPLICATION_JSON.toString());
 
             Response response = httpClient.post(payload);
             String urlString = UriBuilder.fromUri(hostname).path(path).build().toString();
             URL url = new URL(urlString);
 
-            HttpClient httpClient = httpClientFactory.newJsonClient(url, TargetEntity.SDC);
+            HttpClient httpClient = httpClientFactory.newJsonClient(url, ONAPComponents.SDC);
             httpClient.addAdditionalHeader("Content-Type", ContentType.APPLICATION_JSON.toString());
 
             Response response = httpClient.put(CERTIFY_ACTIVITY_PAYLOAD);
 
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 import org.onap.so.openpojo.rules.HasToStringRule
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 @Deprecated
 class AaiUtil {
                String regionId = ""
                try{
                        URL Url = new URL(url)
-                       HttpClient client = new HttpClientFactory().newXmlClient(Url, TargetEntity.AAI)
+                       HttpClient client = new HttpClientFactory().newXmlClient(Url, ONAPComponents.AAI)
                        client.addBasicAuthHeader(UrnPropertiesReader.getVariable("aai.auth", execution), UrnPropertiesReader.getVariable("mso.msoKey", execution))
                        client.addAdditionalHeader("X-FromAppId", "MSO")
                        client.addAdditionalHeader("X-TransactionId", utils.getRequestID())
 
 
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.springframework.web.util.UriUtils
 
 import javax.ws.rs.core.MediaType
                        String catalogDbEndpoint = UrnPropertiesReader.getVariable("mso.catalog.db.endpoint",execution)
                        String queryEndpoint = catalogDbEndpoint + "/" + defaultDbAdapterVersion + endPoint
                        def responseData = ''
-                       HttpClient client = httpClientFactory.newJsonClient(new URL(queryEndpoint), TargetEntity.CATALOG_DB)
+                       HttpClient client = httpClientFactory.newJsonClient(new URL(queryEndpoint), ONAPComponents.CATALOG_DB)
                        client.addAdditionalHeader(ONAPLogConstants.Headers.REQUEST_ID, UUID.randomUUID().toString())
                        client.addAdditionalHeader('X-FromAppId', "BPMN")
                        client.addAdditionalHeader('Accept', MediaType.APPLICATION_JSON)
 
 import org.camunda.bpm.engine.delegate.DelegateExecution
 import org.onap.so.bpmn.core.WorkflowException
 import org.onap.so.logger.MessageEnum
-import org.onap.so.utils.TargetEntities
+import org.onap.logging.filter.base.ONAPComponentsList
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 
                logger.debug("Outgoing WorkflowException is " + exception)
        }
        
-       public void buildWorkflowException(DelegateExecution execution, int errorCode, String errorMessage, TargetEntities extSystemErrorSource) {
+       public void buildWorkflowException(DelegateExecution execution, int errorCode, String errorMessage, ONAPComponentsList extSystemErrorSource) {
                MsoUtils utils = new MsoUtils()
                String processKey = getProcessKey(execution);
                logger.debug("Building a WorkflowException for " + processKey)
 
 import org.onap.so.client.HttpClientFactory
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 import javax.ws.rs.core.MediaType
 import javax.ws.rs.core.Response
                        logger.debug( "URL to be used is: " + url)
                        logger.debug("URL to be passed in header is: " + execution.getVariable("SPPartnerUrl"))
 
-                       HttpClient client = httpClientFactory.newJsonClient(new URL(url), TargetEntity.EXTERNAL)
+                       HttpClient client = httpClientFactory.newJsonClient(new URL(url), ONAPComponents.EXTERNAL)
                        client.addBasicAuthHeader(execution.getVariable("URN_externalapi_auth"), execution.getVariable("URN_mso_msoKey"))
                        client.addAdditionalHeader("X-FromAppId", "MSO")
                        client.addAdditionalHeader(ONAPLogConstants.Headers.REQUEST_ID, uuid)
                        logger.debug( "URL to be used is: " + url)
                        logger.debug("URL to be passed in header is: " + execution.getVariable("SPPartnerUrl"))
 
-                       HttpClient httpClient = httpClientFactory.newJsonClient(new URL(url), TargetEntity.AAI)
+                       HttpClient httpClient = httpClientFactory.newJsonClient(new URL(url), ONAPComponents.AAI)
                        httpClient.addBasicAuthHeader(execution.getVariable("URN_externalapi_auth"), execution.getVariable("URN_mso_msoKey"))
                        httpClient.addAdditionalHeader("X-FromAppId", "MSO")
                        httpClient.addAdditionalHeader("X-TransactionId", uuid)
 
 import org.onap.so.client.aai.entities.uri.AAIResourceUri
 import org.onap.so.client.aai.entities.uri.AAIUriFactory
 import org.onap.so.client.graphinventory.entities.uri.Depth
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.onap.so.logger.MessageEnum
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
                        logger.debug("AAI endPoint: " + endPoint)
 
                        try {
-                               HttpClient client = new HttpClientFactory().newXmlClient(new URL(endPoint), TargetEntity.AAI)
+                               HttpClient client = new HttpClientFactory().newXmlClient(new URL(endPoint), ONAPComponents.AAI)
 
                                client.addAdditionalHeader('X-TransactionId', UUID.randomUUID().toString())
                                client.addAdditionalHeader('X-FromAppId', 'MSO')
 
 import org.onap.so.db.catalog.beans.CloudSite
 import org.onap.so.db.catalog.beans.HomingInstance
 import org.onap.so.db.catalog.beans.ServerType
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 
 
 
                 URL url = new URL(urlString)
-                HttpClient httpClient = new HttpClientFactory().newJsonClient(url, TargetEntity.OOF)
+                HttpClient httpClient = new HttpClientFactory().newJsonClient(url, ONAPComponents.OOF)
                 httpClient.addAdditionalHeader("Authorization", authHeader)
                 Response httpResponse = httpClient.post(oofRequest)
 
 
 import org.onap.so.client.HttpClientFactory
 import org.onap.so.db.catalog.beans.CloudSite
 import org.onap.so.db.catalog.beans.HomingInstance
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.springframework.http.HttpEntity
 import org.springframework.http.HttpHeaders
 import org.springframework.http.HttpMethod
 
 import org.onap.so.logger.MessageEnum
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 
 
 
                        URL url = new URL(sdncAdapterUrl)
 
-                       HttpClient httpClient = new HttpClientFactory().newJsonClient(url, TargetEntity.SDNC_ADAPTER)
+                       HttpClient httpClient = new HttpClientFactory().newJsonClient(url, ONAPComponents.SDNC_ADAPTER)
                        httpClient.addAdditionalHeader("X-ONAP-RequestID", execution.getVariable("mso-request-id"))
                        httpClient.addAdditionalHeader("X-ONAP-InvocationID", UUID.randomUUID().toString())
                        httpClient.addAdditionalHeader("X-ONAP-PartnerName", "SO-SDNCAdapter")
 
 import org.onap.so.bpmn.core.json.JsonUtils
 import org.onap.so.client.HttpClient
 import org.onap.so.client.HttpClientFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.onap.so.bpmn.common.scripts.AbstractServiceTaskProcessor
 
 import org.json.JSONArray
                                logger.debug("Sniro Url is: " + urlString)
 
                                URL url = new URL(urlString);
-                               HttpClient httpClient = new HttpClientFactory().newJsonClient(url, TargetEntity.SNIRO)
+                               HttpClient httpClient = new HttpClientFactory().newJsonClient(url, ONAPComponents.SNIRO)
                                httpClient.addAdditionalHeader("Authorization", authHeader)
                                Response httpResponse = httpClient.post(sniroRequest)
 
 
 import org.onap.so.logger.MessageEnum
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import java.util.UUID
+import org.onap.so.utils.Components
 
 
 
                                String msg = getProcessKey(execution) + ': no messageId in ' + requestType
                                logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                ErrorCode.UnknownError.getValue());
-                               exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                               exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                        }
 
                        execution.setVariable('VNFAResponse_CORRELATOR', messageId)
                                String msg = getProcessKey(execution) + ': no notificationUrl in ' + requestType
                                logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                ErrorCode.UnknownError.getValue());
-                               exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                               exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                        }
 
                        execution.setVariable(prefix + 'notificationUrl', notificationUrl)
                                String msg = getProcessKey(execution) + ': mso:adapters:vnf:rest:endpoint URN mapping is not defined'
                                logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                ErrorCode.UnknownError.getValue());
-                               exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                               exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                        }
 
                        while (vnfAdapterEndpoint.endsWith('/')) {
                                        String msg = getProcessKey(execution) + ': no vnfId in ' + requestType
                                        logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                        ErrorCode.UnknownError.getValue());
-                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                                }
 
                                vnfAdapterMethod = 'POST'
                                        String msg = getProcessKey(execution) + ': no vnfId in ' + requestType
                                        logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                        ErrorCode.UnknownError.getValue());
-                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                                }
 
                                String vfModuleId = getChildText(root, 'vfModuleId')
                                        String msg = getProcessKey(execution) + ': no vfModuleId in ' + requestType
                                        logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                        ErrorCode.UnknownError.getValue());
-                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                                }
 
                                vnfAdapterMethod = 'PUT'
                                        String msg = getProcessKey(execution) + ': no vnfId in ' + requestType
                                        logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                        ErrorCode.UnknownError.getValue());
-                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                                }
 
                                String vfModuleId = getChildText(root, 'vfModuleId')
                                        String msg = getProcessKey(execution) + ': no vfModuleId in ' + requestType
                                        logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                        ErrorCode.UnknownError.getValue());
-                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                                }
 
                                vnfAdapterMethod = 'DELETE'
                                        String msg = getProcessKey(execution) + ': no vfModuleRollback in ' + requestType
                                        logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                        ErrorCode.UnknownError.getValue());
-                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                                }
 
                                String vnfId = getChildText(vfModuleRollbackNode, 'vnfId')
                                        String msg = getProcessKey(execution) + ': no vnfId in ' + requestType
                                        logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                        ErrorCode.UnknownError.getValue());
-                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                                }
 
                                String vfModuleId = getChildText(vfModuleRollbackNode, 'vfModuleId')
                                        String msg = getProcessKey(execution) + ': no vfModuleId in ' + requestType
                                        logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                        ErrorCode.UnknownError.getValue());
-                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                                }
 
                                vnfAdapterMethod = 'DELETE'
                                        String msg = getProcessKey(execution) + ': no volumeGroupId in ' + requestType
                                        logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                        ErrorCode.UnknownError.getValue());
-                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                                }
 
                                vnfAdapterMethod = 'PUT'
                                        String msg = getProcessKey(execution) + ': no volumeGroupId in ' + requestType
                                        logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                        ErrorCode.UnknownError.getValue());
-                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                                }
 
                                vnfAdapterMethod = 'DELETE'
                                        String msg = getProcessKey(execution) + ': no volumeGroupId in ' + requestType
                                        logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                        ErrorCode.UnknownError.getValue());
-                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                                }
 
                                vnfAdapterMethod = 'DELETE'
                                String msg = getProcessKey(execution) + ': Unsupported request type: ' + requestType
                                logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                ErrorCode.UnknownError.getValue());
-                               exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                               exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                        }
 
                        execution.setVariable(prefix + 'vnfAdapterMethod', vnfAdapterMethod)
                        logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                        ErrorCode.UnknownError.getValue());
                        logger.debug(msg)
-                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                }
        }
 
 
                        URL url = new URL(vnfAdapterUrl);
 
-                       HttpClient httpClient = new HttpClientFactory().newXmlClient(url, TargetEntity.VNF_ADAPTER)
+                       HttpClient httpClient = new HttpClientFactory().newXmlClient(url, ONAPComponents.VNF_ADAPTER)
                        httpClient.addAdditionalHeader("Authorization", execution.getVariable(prefix + "basicAuthHeaderValue"))
                        
                        httpClient.addAdditionalHeader("X-ONAP-RequestID", execution.getVariable("mso-request-id"))
                                String msg = 'Unsupported HTTP method "' + vnfAdapterMethod + '" in ' + method + ": " + e
                                logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                                ErrorCode.UnknownError.getValue());
-                               exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                               exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                        }
 
                        execution.setVariable(prefix + "vnfAdapterStatusCode", response.getStatus())
                        String msg = 'Caught exception in ' + method + ": " + e
                        logger.error(LoggingAnchor.FOUR, MessageEnum.BPMN_GENERAL_EXCEPTION_ARG.toString(), msg, "BPMN",
                                        ErrorCode.UnknownError.getValue());
-                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, TargetEntity.SO)
+                       exceptionUtil.buildAndThrowWorkflowException(execution, 2000, msg, ONAPComponents.SO)
                }
        }
 
                        }
                } catch (Exception e) {
                        logger.debug("Error encountered within VnfAdapterRest ProcessCallback method: {}", e.getMessage(), e)
-                       exceptionUtil.buildAndThrowWorkflowException(execution, 7020, "Error encountered within VnfAdapterRest ProcessCallback method", TargetEntity.SO)
+                       exceptionUtil.buildAndThrowWorkflowException(execution, 7020, "Error encountered within VnfAdapterRest ProcessCallback method", ONAPComponents.SO)
                }
        }
 
                        String rolledBack = getChildText(root, "rolledBack")
                        rolledBack = rolledBack == null || rolledBack.isEmpty() ? "" : " rolledBack='" + rolledBack + "'"
                        exceptionUtil.buildWorkflowException(execution, 7020, "Received " + root.name() +
-                               " from VnfAdapter:" + category + message + rolledBack, TargetEntity.OPENSTACK);
+                               " from VnfAdapter:" + category + message + rolledBack, Components.OPENSTACK);
                } catch (Exception e) {
                        response = response == null || String.valueOf(response).isEmpty() ? "NONE" : response
-                       exceptionUtil.buildWorkflowException(execution, 7020, "Received error from VnfAdapter: " + response, TargetEntity.OPENSTACK)
+                       exceptionUtil.buildWorkflowException(execution, 7020, "Received error from VnfAdapter: " + response, Components.OPENSTACK)
                }
        }
 
 
 import org.onap.so.bpmn.core.json.JsonUtils;
 import org.onap.so.client.HttpClient;
 import org.onap.so.client.HttpClientFactory;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
 
         HttpClient client = new HttpClientFactory().newJsonClient(UriBuilder.fromUri(catalogEndPoint)
                 .path(SERVICE_URL_SERVICE_INSTANCE).queryParam("serviceModelUuid", uuid).build().toURL(),
-                TargetEntity.CATALOG_DB);
+                ONAPComponents.CATALOG_DB);
 
         client.addAdditionalHeader("Accept", "application/json");
         client.addAdditionalHeader("Authorization", UrnPropertiesReader.getVariable("mso.db.auth"));
 
 import java.util.Map;
 import org.camunda.bpm.engine.delegate.BpmnError;
 import org.camunda.bpm.engine.delegate.DelegateExecution;
+import org.onap.logging.filter.base.ONAPComponentsList;
 import org.onap.so.bpmn.core.WorkflowException;
 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
 import org.onap.so.bpmn.servicedecomposition.entities.ExecuteBuildingBlock;
 import org.onap.so.db.catalog.client.CatalogDbClient;
 import org.onap.so.db.request.beans.InfraActiveRequests;
 import org.onap.so.db.request.client.RequestsDbClient;
-import org.onap.so.utils.TargetEntities;
-import org.onap.so.utils.TargetEntity;
+import org.onap.so.utils.Components;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
         try {
             String requestId = (String) execution.getVariable("mso-request-id");
             WorkflowException exception = (WorkflowException) execution.getVariable("WorkflowException");
-            TargetEntities extSystemErrorSource = exception.getExtSystemErrorSource();
+            ONAPComponentsList extSystemErrorSource = exception.getExtSystemErrorSource();
             InfraActiveRequests request = requestDbclient.getInfraActiveRequestbyRequestId(requestId);
             Boolean isRollbackFailure = (Boolean) execution.getVariable("isRollback");
             if (isRollbackFailure == null) {
             } else if (isRollbackFailure) {
                 logger.debug(
                         "rollbackExtSystemErrorSource is null for isRollbackFailure. Setting rollbackExtSystemErrorSource to UNKNOWN");
-                request.setRollbackExtSystemErrorSource(TargetEntity.UNKNOWN.toString());
+                request.setRollbackExtSystemErrorSource(Components.UNKNOWN.toString());
             } else {
                 logger.debug("extSystemErrorSource is null. Setting extSystemErrorSource to UNKNOWN");
-                request.setExtSystemErrorSource(TargetEntity.UNKNOWN.toString());
+                request.setExtSystemErrorSource(Components.UNKNOWN.toString());
             }
 
             request.setLastModifiedBy("CamundaBPMN");
 
 import org.onap.so.logger.MessageEnum;
 import org.onap.so.objects.audit.AAIObjectAudit;
 import org.onap.so.objects.audit.AAIObjectAuditList;
-import org.onap.so.utils.TargetEntities;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponentsList;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Component;
     }
 
     public void buildAndThrowWorkflowException(BuildingBlockExecution execution, int errorCode, Exception exception,
-            TargetEntities extSystemErrorSource) {
+            ONAPComponentsList extSystemErrorSource) {
         String msg = "Exception in %s.%s ";
         try {
             logger.error("Exception occurred", exception);
     }
 
     public void buildAndThrowWorkflowException(DelegateExecution execution, int errorCode, Exception exception,
-            TargetEntities extSystemErrorSource) {
+            ONAPComponentsList extSystemErrorSource) {
         String msg = "Exception in %s.%s ";
         try {
             logger.error("Exception occurred", exception);
     }
 
     public void buildAndThrowWorkflowException(BuildingBlockExecution execution, int errorCode, String errorMessage,
-            TargetEntities extSystemErrorSource) {
+            ONAPComponentsList extSystemErrorSource) {
         if (execution instanceof DelegateExecutionImpl) {
             buildAndThrowWorkflowException(((DelegateExecutionImpl) execution).getDelegateExecution(), errorCode,
                     errorMessage, extSystemErrorSource);
     }
 
     public void buildAndThrowWorkflowException(DelegateExecution execution, int errorCode, String errorMessage,
-            TargetEntities extSystemErrorSource) {
+            ONAPComponentsList extSystemErrorSource) {
         String processKey = getProcessKey(execution);
         logger.info("Building a WorkflowException for Subflow");
 
                 execution.setVariable("StatusMessage", errorMessage.toString());
             } else {
                 WorkflowException exception =
-                        new WorkflowException(processKey, 400, errorMessage.toString(), TargetEntity.SO);
+                        new WorkflowException(processKey, 400, errorMessage.toString(), ONAPComponents.SO);
                 execution.setVariable("WorkflowException", exception);
                 execution.setVariable("WorkflowExceptionErrorMessage", errorMessage.toString());
                 logger.info("Outgoing WorkflowException is {}", exception);
 
         } else {
             String errorMessage = "Unable to process audit results due to auditInventoryResult being null";
-            WorkflowException exception = new WorkflowException(processKey, 400, errorMessage, TargetEntity.SO);
+            WorkflowException exception = new WorkflowException(processKey, 400, errorMessage, ONAPComponents.SO);
             execution.setVariable("WorkflowException", exception);
             execution.setVariable("WorkflowExceptionErrorMessage", errorMessage);
             logger.info("Outgoing WorkflowException is {}", exception);
 
 import org.onap.so.bpmn.core.json.JsonUtils
 import org.onap.so.client.HttpClient
 import org.onap.so.client.HttpClientFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.skyscreamer.jsonassert.JSONAssert
 import org.skyscreamer.jsonassert.JSONCompareMode
 import org.springframework.core.env.Environment
     private void mockGetResponseFromCatalogDb(String queryEndpoint) {
         Environment environmentMock = createEnvironmentMock()
         when(environmentMock.getProperty("mso.catalog.db.endpoint")).thenReturn("http://testUrl")
-        when(httpClientFactoryMock.newJsonClient(new URL(queryEndpoint), TargetEntity.CATALOG_DB)).thenReturn(httpClientMock)
+        when(httpClientFactoryMock.newJsonClient(new URL(queryEndpoint), ONAPComponents.CATALOG_DB)).thenReturn(httpClientMock)
 
         Response responseMock = mock(Response.class)
         when(httpClientMock.get()).thenReturn(responseMock)
 
 import org.onap.logging.ref.slf4j.ONAPLogConstants
 import org.onap.so.client.HttpClient
 import org.onap.so.client.HttpClientFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.springframework.http.HttpStatus
 
 import javax.ws.rs.core.MediaType
         HttpClient httpClient = mock(HttpClient.class)
         given(httpClient.get()).willReturn(expectedResponse)
         HttpClientFactory httpClientFactory = mock(HttpClientFactory.class)
-        given(httpClientFactory.newJsonClient(new URL(URL), TargetEntity.EXTERNAL)).willReturn(httpClient)
+        given(httpClientFactory.newJsonClient(new URL(URL), ONAPComponents.EXTERNAL)).willReturn(httpClient)
 
         // WHEN
         ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(httpClientFactory, new DummyMsoUtils(UUID_STR), new ExceptionUtil())
         HttpClient httpClient = mock(HttpClient.class)
         willThrow(new RuntimeException("error occurred")).given(httpClient).get()
         HttpClientFactory httpClientFactory = mock(HttpClientFactory.class)
-        given(httpClientFactory.newJsonClient(new URL(URL), TargetEntity.EXTERNAL)).willReturn(httpClient)
+        given(httpClientFactory.newJsonClient(new URL(URL), ONAPComponents.EXTERNAL)).willReturn(httpClient)
         DelegateExecution delegateExecution = createDelegateExecution()
         DummyExceptionUtil exceptionUtil = new DummyExceptionUtil()
 
         HttpClient httpClient = mock(HttpClient.class)
         willThrow(new RuntimeException("error occurred")).given(httpClient).post(BODY_PAYLOAD)
         HttpClientFactory httpClientFactory = mock(HttpClientFactory.class)
-        given(httpClientFactory.newJsonClient(new URL(URL), TargetEntity.AAI)).willReturn(httpClient)
+        given(httpClientFactory.newJsonClient(new URL(URL), ONAPComponents.AAI)).willReturn(httpClient)
         DelegateExecution delegateExecution = createDelegateExecution()
         DummyExceptionUtil exceptionUtil = new DummyExceptionUtil()
 
         HttpClient httpClient = mock(HttpClient.class)
         given(httpClient.post(BODY_PAYLOAD)).willReturn(expectedResponse)
         HttpClientFactory httpClientFactory = mock(HttpClientFactory.class)
-        given(httpClientFactory.newJsonClient(new URL(URL), TargetEntity.AAI)).willReturn(httpClient)
+        given(httpClientFactory.newJsonClient(new URL(URL), ONAPComponents.AAI)).willReturn(httpClient)
 
         // WHEN
         ExternalAPIUtil externalAPIUtil = new ExternalAPIUtil(httpClientFactory, new DummyMsoUtils(UUID_STR), new ExceptionUtil())
 
 import org.mockito.Mockito;
 import org.mockito.Spy;
 import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.onap.so.bpmn.core.WorkflowException;
 import org.onap.so.db.request.beans.InfraActiveRequests;
 import org.onap.so.db.request.client.RequestsDbClient;
-import org.onap.so.utils.TargetEntity;
+import org.onap.so.utils.Components;
 
 @RunWith(MockitoJUnitRunner.class)
 public class ExecuteBuildingBlockRainyDayUnitTest {
 
     @Before
     public void setup() {
-        exception = new WorkflowException("Test exception", 7000, "", "", TargetEntity.SDNC);
+        exception = new WorkflowException("Test exception", 7000, "", "", ONAPComponents.SDNC);
         noExtSystemErrorSourceException =
                 new WorkflowException("Test exception without extsystemErrorSource", 7000, "", "");
 
         execution.setVariable("isRollback", false);
         execution.setVariable("WorkflowException", exception);
         executeBuildingBlockRainyDay.updateExtSystemErrorSource(execution);
-        request.setExtSystemErrorSource(TargetEntity.SDNC.toString());
+        request.setExtSystemErrorSource(ONAPComponents.SDNC.toString());
 
         verify(requestsDbClient, Mockito.times(1)).updateInfraActiveRequests(request);
     }
         execution.setVariable("isRollback", true);
         execution.setVariable("WorkflowException", exception);
         executeBuildingBlockRainyDay.updateExtSystemErrorSource(execution);
-        request.setExtSystemErrorSource(TargetEntity.SDNC.toString());
+        request.setExtSystemErrorSource(ONAPComponents.SDNC.toString());
 
         verify(requestsDbClient, Mockito.times(1)).updateInfraActiveRequests(request);
     }
 
     @Test
-    public void updateExtSystemErrorSourceisRollbackTargetEntityNullTest() {
+    public void updateExtSystemErrorSourceisRollbackONAPComponentsNullTest() {
         doReturn(request).when(requestsDbClient).getInfraActiveRequestbyRequestId(msoRequestId);
         doNothing().when(requestsDbClient).updateInfraActiveRequests(request);
         execution.setVariable("isRollback", true);
         execution.setVariable("WorkflowException", noExtSystemErrorSourceException);
         executeBuildingBlockRainyDay.updateExtSystemErrorSource(execution);
-        request.setExtSystemErrorSource(TargetEntity.UNKNOWN.toString());
+        request.setExtSystemErrorSource(Components.UNKNOWN.toString());
 
         verify(requestsDbClient, Mockito.times(1)).updateInfraActiveRequests(request);
     }
 
     @Test
-    public void updateExtSystemErrorSourceTargetEntityNullTest() {
+    public void updateExtSystemErrorSourceONAPComponentsNullTest() {
         doReturn(request).when(requestsDbClient).getInfraActiveRequestbyRequestId(msoRequestId);
         doNothing().when(requestsDbClient).updateInfraActiveRequests(request);
         execution.setVariable("isRollback", false);
         execution.setVariable("WorkflowException", noExtSystemErrorSourceException);
         executeBuildingBlockRainyDay.updateExtSystemErrorSource(execution);
-        request.setExtSystemErrorSource(TargetEntity.UNKNOWN.toString());
+        request.setExtSystemErrorSource(Components.UNKNOWN.toString());
 
         verify(requestsDbClient, Mockito.times(1)).updateInfraActiveRequests(request);
     }
 
     @Test
-    public void updateExtSystemErrorSourceTargetEntityisRollbackNullTest() {
+    public void updateExtSystemErrorSourceONAPComponentsisRollbackNullTest() {
         doReturn(request).when(requestsDbClient).getInfraActiveRequestbyRequestId(msoRequestId);
         doNothing().when(requestsDbClient).updateInfraActiveRequests(request);
         executionNullisRollback.setVariable("WorkflowException", exception);
         executeBuildingBlockRainyDay.updateExtSystemErrorSource(executionNullisRollback);
-        request.setExtSystemErrorSource(TargetEntity.SDNC.toString());
+        request.setExtSystemErrorSource(ONAPComponents.SDNC.toString());
 
         verify(requestsDbClient, Mockito.times(1)).updateInfraActiveRequests(request);
     }
 
 import org.mockito.Spy;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.onap.so.bpmn.common.BuildingBlockExecution;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 @RunWith(MockitoJUnitRunner.class)
 public class ExceptionBuilderUnitTest {
         String expectedErrorMessage =
                 "Exception in org.onap.so.client.exception.ExceptionBuilder.buildAndThrowWorkflowException failure message";
         doNothing().when(exceptionBuilder).buildAndThrowWorkflowException(execution, 7000, expectedErrorMessage,
-                TargetEntity.SDNC);
+                ONAPComponents.SDNC);
 
-        exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e, TargetEntity.SDNC);
+        exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e, ONAPComponents.SDNC);
 
         verify(exceptionBuilder, times(1)).buildAndThrowWorkflowException(execution, 7000, expectedErrorMessage,
-                TargetEntity.SDNC);
+                ONAPComponents.SDNC);
     }
 
     @Test
         String expectedErrorMessage =
                 "Exception in org.onap.so.client.exception.ExceptionBuilder.buildAndThrowWorkflowException failure message";
         doNothing().when(exceptionBuilder).buildAndThrowWorkflowException(buildingBlockExecution, 7000,
-                expectedErrorMessage, TargetEntity.SDNC);
+                expectedErrorMessage, ONAPComponents.SDNC);
 
-        exceptionBuilder.buildAndThrowWorkflowException(buildingBlockExecution, 7000, e, TargetEntity.SDNC);
+        exceptionBuilder.buildAndThrowWorkflowException(buildingBlockExecution, 7000, e, ONAPComponents.SDNC);
 
         verify(exceptionBuilder, times(1)).buildAndThrowWorkflowException(buildingBlockExecution, 7000,
-                expectedErrorMessage, TargetEntity.SDNC);
+                expectedErrorMessage, ONAPComponents.SDNC);
     }
 
     @Test
         doReturn("Process key").when(exceptionBuilder).getProcessKey(execution);
 
         thrown.expect(BpmnError.class);
-        exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e.getMessage(), TargetEntity.SDNC);
+        exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e.getMessage(), ONAPComponents.SDNC);
     }
 }
 
 package org.onap.so.bpmn.core;
 
 import java.io.Serializable;
-import org.onap.so.utils.TargetEntities;
+import org.onap.logging.filter.base.ONAPComponentsList;
 
 /**
  * An object that represents a workflow exception.
     private final int errorCode;
     private final String errorMessage;
     private final String workStep;
-    private TargetEntities extSystemErrorSource;
+    private ONAPComponentsList extSystemErrorSource;
 
     /**
      * Constructor
     }
 
     public WorkflowException(String processKey, int errorCode, String errorMessage,
-            TargetEntities extSystemErrorSource) {
+            ONAPComponentsList extSystemErrorSource) {
         this.processKey = processKey;
         this.errorCode = errorCode;
         this.errorMessage = errorMessage;
     }
 
     public WorkflowException(String processKey, int errorCode, String errorMessage, String workStep,
-            TargetEntities extSystemErrorSource) {
+            ONAPComponentsList extSystemErrorSource) {
         this.processKey = processKey;
         this.errorCode = errorCode;
         this.errorMessage = errorMessage;
         return workStep;
     }
 
-    public TargetEntities getExtSystemErrorSource() {
+    public ONAPComponentsList getExtSystemErrorSource() {
         return extSystemErrorSource;
     }
 
 
 import org.onap.so.bpmn.common.workflow.service.WorkflowResource;
 import org.onap.so.logging.cxf.interceptor.SOAPLoggingInInterceptor;
 import org.onap.so.logging.cxf.interceptor.SOAPLoggingOutInterceptor;
-import org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.web.servlet.ServletRegistrationBean;
 import org.springframework.context.annotation.Bean;
     private WorkflowAsyncResource workflowAsyncResource;
 
     @Autowired
-    private JaxRsFilterLogging jaxRsFilterLogging;
+    private SOAuditLogContainerFilter soAuditLogContainerFilter;
 
     @Autowired
     private ObjectMapper mapper;
         endpoint.setServiceBeans(Arrays.<Object>asList(wmr, workflowResource, workflowAsyncResource));
         endpoint.setAddress("/");
         endpoint.setFeatures(Arrays.asList(createSwaggerFeature(), new LoggingFeature()));
-        endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(mapper), jaxRsFilterLogging));
+        endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(mapper), soAuditLogContainerFilter));
 
         return endpoint.create();
     }
 
 import org.onap.so.bpmn.common.DefaultToShortClassNameBeanNameGenerator;
 import org.onap.so.db.catalog.beans.Workflow;
 import org.onap.so.db.catalog.client.CatalogDbClient;
-import org.onap.so.logging.jaxrs.filter.MDCTaskDecorator;
+import org.onap.logging.filter.spring.MDCTaskDecorator;;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import org.onap.so.bpmn.core.UrnPropertiesReader
 
 import javax.ws.rs.core.Response
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 /**
  * This groovy class supports the <class>DoCreateVFCNetworkServiceInstance.bpmn</class> process.
             // Get the Basic Auth credentials for the VFCAdapter, username is 'bpel', auth is '07a7159d3bf51a0e53be7a8f89699be7'
             // user 'bepl' authHeader is the same with mso.db.auth
             String basicAuthValuedb =  UrnPropertiesReader.getVariable("mso.db.auth", execution)
-            HttpClient httpClient = new HttpClientFactory().newJsonClient(url, TargetEntity.VNF_ADAPTER)
+            HttpClient httpClient = new HttpClientFactory().newJsonClient(url, ONAPComponents.VNF_ADAPTER)
             httpClient.addAdditionalHeader("Accept", "application/json")
             httpClient.addAdditionalHeader("Authorization", basicAuthValuedb)
 
 
 import org.apache.commons.lang3.*
 import javax.ws.rs.core.MediaType
 import org.apache.commons.codec.binary.Base64
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 
 /**
 
 import org.onap.so.bpmn.common.scripts.SDNCAdapterUtils
 import org.onap.so.bpmn.common.scripts.VidUtils
 import org.onap.so.bpmn.core.WorkflowException
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 import javax.ws.rs.core.Response
 import org.camunda.bpm.engine.delegate.BpmnError
                        execution.setVariable(Prefix + "urlRollbackPoNetwork", urlRollbackPoNetwork)
 
                        URL url = new URL(urlRollbackPoNetwork)
-                       HttpClient httpClient = new HttpClientFactory().newXmlClient(url, TargetEntity.OPENSTACK_ADAPTER)
+                       HttpClient httpClient = new HttpClientFactory().newXmlClient(url, ONAPComponents.OPENSTACK_ADAPTER)
                        httpClient.addAdditionalHeader("Authorization", execution.getVariable("BasicAuthHeaderValuePO"))
                        Response response = httpClient.delete(rollbackNetworkRequest)
 
 
 import org.slf4j.LoggerFactory
 import org.onap.so.bpmn.core.UrnPropertiesReader
 
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 import javax.ws.rs.core.Response
 
             // Get the Basic Auth credentials for the VFCAdapter, username is 'bpel', auth is '07a7159d3bf51a0e53be7a8f89699be7'
             // user 'bepl' authHeader is the same with mso.db.auth
             String basicAuthValuedb =  UrnPropertiesReader.getVariable("mso.db.auth", execution)
-            HttpClient httpClient = new HttpClientFactory().newJsonClient(url, TargetEntity.VNF_ADAPTER)
+            HttpClient httpClient = new HttpClientFactory().newJsonClient(url, ONAPComponents.VNF_ADAPTER)
             httpClient.addAdditionalHeader("Accept", "application/json")
             httpClient.addAdditionalHeader("Authorization", basicAuthValuedb)
 
 
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
 
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.w3c.dom.Document
 import org.w3c.dom.Element
 import org.w3c.dom.NamedNodeMap
                        String endPoint = aaiUriUtil.createAaiUri(uri)
 
                        try {
-                               HttpClient client = httpClientFactory.newXmlClient(new URL(endPoint), TargetEntity.AAI)
+                               HttpClient client = httpClientFactory.newXmlClient(new URL(endPoint), ONAPComponents.AAI)
                                client.addAdditionalHeader('X-TransactionId', UUID.randomUUID().toString())
                                client.addAdditionalHeader('X-FromAppId', 'MSO')
                                client.addAdditionalHeader('Content-Type', MediaType.APPLICATION_XML)
                        AAIResourceUri uri = AAIUriFactory.createResourceUri(AAIObjectPlurals.VF_MODULE, vnfId).queryParam("vf-module-name",vfModuleName)
                        String endPoint = aaiUriUtil.createAaiUri(uri)
 
-                       HttpClient client = httpClientFactory.newXmlClient(new URL(endPoint), TargetEntity.AAI)
+                       HttpClient client = httpClientFactory.newXmlClient(new URL(endPoint), ONAPComponents.AAI)
                        client.addAdditionalHeader('X-TransactionId', UUID.randomUUID().toString())
                        client.addAdditionalHeader('X-FromAppId', 'MSO')
                        client.addAdditionalHeader('Content-Type', MediaType.APPLICATION_XML)
 
 import org.onap.so.client.aai.entities.uri.AAIUriFactory
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.springframework.web.util.UriUtils
 
 import javax.ws.rs.NotFoundException
                String serviceAaiPath = "${aai_endpoint}${urlLink}"
 
                URL url = new URL(serviceAaiPath)
-               HttpClient client = new HttpClientFactory().newXmlClient(url, TargetEntity.AAI)
+               HttpClient client = new HttpClientFactory().newXmlClient(url, ONAPComponents.AAI)
         client.addBasicAuthHeader(UrnPropertiesReader.getVariable("aai.auth", execution), UrnPropertiesReader.getVariable("mso.msoKey", execution))
         client.addAdditionalHeader("X-FromAppId", "MSO")
         client.addAdditionalHeader("X-TransactionId", utils.getRequestID())
 
 import org.slf4j.LoggerFactory
 
 import org.springframework.web.util.UriUtils
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 import groovy.json.JsonOutput
 import javax.ws.rs.core.Response
                        String vnfAdapterRequest = execution.getVariable(Prefix + "deleteNetworkRequest")
 
                        URL url = new URL(vnfAdapterUrl)
-                       HttpClient httpClient = new HttpClientFactory().newXmlClient(url, TargetEntity.OPENSTACK_ADAPTER)
+                       HttpClient httpClient = new HttpClientFactory().newXmlClient(url, ONAPComponents.OPENSTACK_ADAPTER)
                        httpClient.accept = "application/xml"
                        httpClient.addAdditionalHeader("Authorization", execution.getVariable("BasicAuthHeaderValuePO"))
                        Response response = httpClient.delete(vnfAdapterRequest)
 
 import org.onap.so.client.aai.entities.uri.AAIUriFactory
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 import org.onap.so.bpmn.core.UrnPropertiesReader
 
 import javax.ws.rs.core.Response
                        // Get the Basic Auth credentials for the VFCAdapter, username is 'bpel', auth is '07a7159d3bf51a0e53be7a8f89699be7'
             // user 'bepl' authHeader is the same with mso.db.auth
             String basicAuthValuedb =  UrnPropertiesReader.getVariable("mso.db.auth", execution)
-            HttpClient httpClient = httpClientFactory.newJsonClient(url, TargetEntity.VNF_ADAPTER)
+            HttpClient httpClient = httpClientFactory.newJsonClient(url, ONAPComponents.VNF_ADAPTER)
             httpClient.addAdditionalHeader("Accept", "application/json")
             httpClient.addAdditionalHeader("Authorization", basicAuthValuedb)
 
             // Get the Basic Auth credentials for the VFCAdapter, username is 'bpel', auth is '07a7159d3bf51a0e53be7a8f89699be7'
             // user 'bepl' authHeader is the same with mso.db.auth
             String basicAuthValuedb =  UrnPropertiesReader.getVariable("mso.db.auth", execution)
-            HttpClient httpClient = httpClientFactory.newJsonClient(url, TargetEntity.VNF_ADAPTER)
+            HttpClient httpClient = httpClientFactory.newJsonClient(url, ONAPComponents.VNF_ADAPTER)
             httpClient.addAdditionalHeader("Accept", "application/json")
             httpClient.addAdditionalHeader("Authorization", basicAuthValuedb)
             httpClient.addAdditionalHeader("Content-Type", "application/json")
 
 import org.onap.so.logger.MessageEnum
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 
 
         try{
                        URL url = new URL(urlString);
 
-            HttpClient httpClient = new HttpClientFactory().newJsonClient(url, TargetEntity.VNF_ADAPTER)
+            HttpClient httpClient = new HttpClientFactory().newJsonClient(url, ONAPComponents.VNF_ADAPTER)
                        httpClient.addAdditionalHeader("Authorization", "Basic QlBFTENsaWVudDpwYXNzd29yZDEk")
 
                        apiResponse = httpClient.post(requestBody)
 
 import org.onap.so.logger.MessageEnum
 import org.slf4j.Logger
 import org.slf4j.LoggerFactory
-import org.onap.so.utils.TargetEntity
+import org.onap.logging.filter.base.ONAPComponents;
 
 /**
  * This class supports the VID Flow
                        logger.debug("AAI endPoint: " + endPoint)
 
                        try {
-                               HttpClient client = new HttpClientFactory().newXmlClient(new URL(endPoint), TargetEntity.AAI)
+                               HttpClient client = new HttpClientFactory().newXmlClient(new URL(endPoint), ONAPComponents.AAI)
                                client.addAdditionalHeader('X-TransactionId', UUID.randomUUID().toString())
                                client.addAdditionalHeader('X-FromAppId', 'MSO')
                                client.addAdditionalHeader('Content-Type', 'application/xml')
 
 import org.onap.so.client.sniro.beans.SniroManagerRequest;
 import org.onap.so.client.sniro.beans.SubscriberInfo;
 import org.onap.so.db.catalog.beans.OrchestrationStatus;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
         } catch (BpmnError e) {
             logger.error(EXCEPTION_OCCURRED, e);
             exceptionUtil.buildAndThrowWorkflowException(execution, Integer.parseInt(e.getErrorCode()), e.getMessage(),
-                    TargetEntity.SNIRO);
+                    ONAPComponents.SNIRO);
         } catch (BadResponseException e) {
             logger.error(EXCEPTION_OCCURRED, e);
-            exceptionUtil.buildAndThrowWorkflowException(execution, 400, e.getMessage(), TargetEntity.SNIRO);
+            exceptionUtil.buildAndThrowWorkflowException(execution, 400, e.getMessage(), ONAPComponents.SNIRO);
         } catch (Exception e) {
             logger.error(EXCEPTION_OCCURRED, e);
             exceptionUtil.buildAndThrowWorkflowException(execution, INTERNAL,
-                    "Internal Error - occurred while preparing sniro request: " + e.getMessage(), TargetEntity.SO);
+                    "Internal Error - occurred while preparing sniro request: " + e.getMessage(), ONAPComponents.SO);
         }
     }
 
         } catch (BpmnError e) {
             logger.error(EXCEPTION_OCCURRED, e);
             exceptionUtil.buildAndThrowWorkflowException(execution, Integer.parseInt(e.getErrorCode()), e.getMessage(),
-                    TargetEntity.SNIRO);
+                    ONAPComponents.SNIRO);
         } catch (BadResponseException e) {
             logger.error(EXCEPTION_OCCURRED, e);
-            exceptionUtil.buildAndThrowWorkflowException(execution, 400, e.getMessage(), TargetEntity.SNIRO);
+            exceptionUtil.buildAndThrowWorkflowException(execution, 400, e.getMessage(), ONAPComponents.SNIRO);
         } catch (Exception e) {
             logger.error(EXCEPTION_OCCURRED, e);
             exceptionUtil.buildAndThrowWorkflowException(execution, INTERNAL,
                     "Internal Error - occurred while processing sniro asynchronous response: " + e.getMessage(),
-                    TargetEntity.SO);
+                    ONAPComponents.SO);
         }
     }
 
 
 import org.onap.so.adapters.nwrest.UpdateNetworkResponse;
 import org.onap.so.client.exception.ExceptionBuilder;
 import org.onap.so.client.orchestration.NetworkAdapterResources;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.onap.so.utils.Components;
 
 @Component
 public class NetworkAdapterRestV1 {
                 throw new Exception("No Network Request was created. networkAdapterRequest was null.");
             }
         } catch (Exception ex) {
-            exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SO);
+            exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SO);
         }
     }
 
             }
         } catch (Exception e) {
             logger.error("Error in Openstack Adapter callback", e);
-            exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e.getMessage(), TargetEntity.OPENSTACK);
+            exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e.getMessage(), Components.OPENSTACK);
         }
     }
 
 
     public void handleTimeOutException(DelegateExecution execution) {
         exceptionBuilder.buildAndThrowWorkflowException(execution, 7000,
-                "Error timed out waiting on Openstack Async-Response", TargetEntity.SO);
+                "Error timed out waiting on Openstack Async-Response", ONAPComponents.SO);
     }
 
     public void handleSyncError(DelegateExecution execution) {
         String responseString = (String) execution.getVariable(NETWORK_SYNC_RESPONSE);
         String errorMessage = "Error with Openstack Adapter Sync Request: StatusCode = " + statusCode + " Response = "
                 + responseString;
-        exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, errorMessage, TargetEntity.OPENSTACK);
+        exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, errorMessage, Components.OPENSTACK);
     }
 }
 
 import org.onap.so.client.exception.BadResponseException;
 import org.onap.so.client.exception.ExceptionBuilder;
 import org.onap.so.client.orchestration.SDNCVnfResources;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.onap.so.client.orchestration.SDNCVfModuleResources;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
         } catch (BadResponseException ex) {
             logger.error("Exception occurred", ex);
             if (!ex.getMessage().equals(NO_RESPONSE_FROM_SDNC)) {
-                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SDNC);
+                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SDNC);
             } else {
-                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SO);
+                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SO);
             }
         } catch (Exception ex) {
             logger.error("Exception occurred", ex);
-            exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SO);
+            exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SO);
         }
     }
 
         } catch (BadResponseException ex) {
             logger.error("Exception occurred for BadResponse ", ex);
             if (!ex.getMessage().equals(NO_RESPONSE_FROM_SDNC)) {
-                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SDNC);
+                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SDNC);
             } else {
-                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SO);
+                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SO);
             }
         } catch (Exception ex) {
             logger.error("Exception occurred", ex);
             // module id, then we should throw
             // the error as normal
             if (!ResourceKey.VF_MODULE_ID.equals(bbException.getResourceKey())) {
-                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, bbException, TargetEntity.SO);
+                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, bbException, ONAPComponents.SO);
             }
         } catch (BadResponseException ex) {
             logger.error("Error occurred for BadResponseException in SDNCQueryTasks queryVfModuleForVolumeGroup ", ex);
             if (!ex.getMessage().equals(NO_RESPONSE_FROM_SDNC)) {
-                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SDNC);
+                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SDNC);
             } else {
-                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SO);
+                exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SO);
             }
         } catch (Exception ex) {
             logger.error("Exception occurred", ex);
-            exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, TargetEntity.SO);
+            exceptionUtil.buildAndThrowWorkflowException(execution, 7000, ex, ONAPComponents.SO);
         }
     }
 }
 
 import org.onap.so.client.exception.MapperException;
 import org.onap.so.client.sdnc.SDNCClient;
 import org.onap.so.client.sdnc.beans.SDNCRequest;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
         } catch (PathNotFoundException e) {
             logger.error("Error Parsing SDNC Response. Could not find read final ack indicator from JSON.", e);
             exceptionBuilder.buildAndThrowWorkflowException(execution, 7000,
-                    "Recieved invalid response from SDNC, unable to read message content.", TargetEntity.SO);
+                    "Recieved invalid response from SDNC, unable to read message content.", ONAPComponents.SO);
         } catch (MapperException e) {
             logger.error("Failed to map SDNC object to JSON prior to POST.", e);
             exceptionBuilder.buildAndThrowWorkflowException(execution, 7000,
-                    "Failed to map SDNC object to JSON prior to POST.", TargetEntity.SO);
+                    "Failed to map SDNC object to JSON prior to POST.", ONAPComponents.SO);
         } catch (BadResponseException e) {
             logger.error("Did not receive a successful response from SDNC.", e);
             exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e.getLocalizedMessage(),
-                    TargetEntity.SDNC);
+                    ONAPComponents.SDNC);
         } catch (HttpClientErrorException e) {
             logger.error("HttpClientErrorException: 404 Not Found, Failed to contact SDNC", e);
             exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, "SDNC cannot be contacted.",
-                    TargetEntity.SO);
+                    ONAPComponents.SO);
         }
     }
 
             }
         } catch (SDNCErrorResponseException e) {
             logger.error("SDNC error response - " + e.getMessage());
-            exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e.getMessage(), TargetEntity.SDNC);
+            exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, e.getMessage(), ONAPComponents.SDNC);
         } catch (Exception e) {
             logger.error("Error processing SDNC callback", e);
             exceptionBuilder.buildAndThrowWorkflowException(execution, 7000, "Error processing SDNC callback",
-                    TargetEntity.SO);
+                    ONAPComponents.SO);
         }
     }
 
     public void handleTimeOutException(DelegateExecution execution) {
         exceptionBuilder.buildAndThrowWorkflowException(execution, 7000,
-                "Error timed out waiting on SDNC Async-Response", TargetEntity.SO);
+                "Error timed out waiting on SDNC Async-Response", ONAPComponents.SO);
     }
 
     protected boolean convertIndicatorToBoolean(String finalMessageIndicator) {
 
 import org.onap.so.client.exception.BadResponseException;
 import org.onap.so.client.exception.ExceptionBuilder;
 import org.onap.so.client.exception.MapperException;
-import org.onap.so.utils.TargetEntity;
+import org.onap.so.utils.Components;
+import org.onap.logging.filter.base.ONAPComponents;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
         delegateExecution.setVariable("NetworkAResponse_MESSAGE", updateNetworkResponse.toXmlString());
 
         doThrow(new BpmnError("MSOWorkflowException")).when(exceptionBuilder).buildAndThrowWorkflowException(
-                any(DelegateExecution.class), anyInt(), any(String.class), any(TargetEntity.class));
+                any(DelegateExecution.class), anyInt(), any(String.class), any(ONAPComponents.class));
 
         try {
             networkAdapterRestV1Tasks.processCallback(delegateExecution);
         }
         assertNull(delegateExecution.getVariable("updateNetworkResponse"));
         verify(exceptionBuilder, times(1)).buildAndThrowWorkflowException(any(DelegateExecution.class), eq(7000),
-                eq("test error message"), eq(TargetEntity.OPENSTACK));
+                eq("test error message"), eq(Components.OPENSTACK));
     }
 }
 
 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
 import org.onap.so.client.exception.BBObjectNotFoundException;
 import org.onap.so.client.exception.BadResponseException;
-import org.onap.so.utils.TargetEntities;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponentsList;
+import org.onap.logging.filter.base.ONAPComponents;
 
 public class SDNCQueryTasksTest extends BaseTaskTest {
     @InjectMocks
         vfModule = setVfModule();
 
         doThrow(new BpmnError("BPMN Error")).when(exceptionUtil).buildAndThrowWorkflowException(
-                any(BuildingBlockExecution.class), eq(7000), any(Exception.class), any(TargetEntities.class));
+                any(BuildingBlockExecution.class), eq(7000), any(Exception.class), any(ONAPComponentsList.class));
         when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.SERVICE_INSTANCE_ID)))
                 .thenReturn(serviceInstance);
 
         expectedException.expect(BpmnError.class);
         sdncQueryTasks.queryVfModule(execution);
 
-        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, TargetEntity.SDNC);
+        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, ONAPComponents.SDNC);
     }
 
     @Test
         expectedException.expect(BpmnError.class);
         sdncQueryTasks.queryVfModule(execution);
 
-        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, TargetEntity.SO);
+        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, ONAPComponents.SO);
     }
 
     @Test
         expectedException.expect(BpmnError.class);
         sdncQueryTasks.queryVnf(execution);
 
-        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, TargetEntity.SDNC);
+        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, ONAPComponents.SDNC);
     }
 
     @Test
         expectedException.expect(BpmnError.class);
         sdncQueryTasks.queryVnf(execution);
 
-        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, TargetEntity.SO);
+        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, ONAPComponents.SO);
     }
 
     @Test
         expectedException.expect(BpmnError.class);
         sdncQueryTasks.queryVfModuleForVolumeGroup(execution);
 
-        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, TargetEntity.SDNC);
+        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, ONAPComponents.SDNC);
     }
 
     @Test
         expectedException.expect(BpmnError.class);
         sdncQueryTasks.queryVfModuleForVolumeGroup(execution);
 
-        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, TargetEntity.SO);
+        verify(exceptionUtil, times(1)).buildAndThrowWorkflowException(execution, 700, exception, ONAPComponents.SO);
     }
 
     @Test
 
 import org.onap.so.client.sdnc.SDNCClient;
 import org.onap.so.client.sdnc.beans.SDNCRequest;
 import org.onap.so.client.sdnc.endpoint.SDNCTopology;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.w3c.dom.Document;
 import org.xml.sax.InputSource;
 import com.fasterxml.jackson.core.JsonParseException;
 
       <groupId>org.springframework.security</groupId>
       <artifactId>spring-security-web</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.onap.logging-analytics</groupId>
-      <artifactId>logging-slf4j</artifactId>
-      <version>1.2.2</version>
-    </dependency>
     <dependency>
       <groupId>org.mockito</groupId>
       <artifactId>mockito-core</artifactId>
 
 
 import java.util.ArrayList;
 import java.util.List;
-import org.onap.so.logging.jaxrs.filter.SpringClientFilter;
+import org.onap.so.logging.jaxrs.filter.SOSpringClientFilter;
 import org.springframework.core.ParameterizedTypeReference;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;
         RestTemplate restTemplate = new RestTemplate();
         restTemplate
                 .setRequestFactory(new BufferingClientHttpRequestFactory(new HttpComponentsClientHttpRequestFactory()));
-        restTemplate.getInterceptors().add(new SpringClientFilter());
+        restTemplate.getInterceptors().add(new SOSpringClientFilter());
         ResponseEntity<O> responseEntity =
                 restTemplate.exchange(getTargetUrl(), method, requestEntity, typeRef, uriVariables);
         return responseEntity.getBody();
 
 import java.util.Map;
 import java.util.Optional;
 import static org.apache.commons.lang3.StringUtils.*;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 public class HttpClient extends RestClient {
 
     protected final Logger log = LoggerFactory.getLogger(HttpClient.class);
-    private TargetEntity targetEntity;
+    private ONAPComponents targetEntity;
 
-    HttpClient(URL host, String contentType, TargetEntity targetEntity) {
+    HttpClient(URL host, String contentType, ONAPComponents targetEntity) {
         super(host, contentType);
         this.targetEntity = targetEntity;
     }
 
     @Override
-    public TargetEntity getTargetEntity() {
+    public ONAPComponents getTargetEntity() {
         return targetEntity;
     }
 
 
 
 import java.net.URL;
 import javax.ws.rs.core.MediaType;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 public class HttpClientFactory {
 
-    public HttpClient newJsonClient(URL host, TargetEntity targetEntity) {
+    public HttpClient newJsonClient(URL host, ONAPComponents targetEntity) {
         return new HttpClient(host, MediaType.APPLICATION_JSON, targetEntity);
     }
 
-    public HttpClient newXmlClient(URL host, TargetEntity targetEntity) {
+    public HttpClient newXmlClient(URL host, ONAPComponents targetEntity) {
         return new HttpClient(host, MediaType.APPLICATION_XML, targetEntity);
     }
 
-    public HttpClient newTextXmlClient(URL host, TargetEntity targetEntity) {
+    public HttpClient newTextXmlClient(URL host, ONAPComponents targetEntity) {
         return new HttpClient(host, MediaType.TEXT_XML, targetEntity);
     }
 }
 
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
 import javax.ws.rs.core.UriBuilder;
+import org.onap.logging.filter.base.MDCSetup;
+import org.onap.logging.filter.base.ONAPComponentsList;
+import org.onap.logging.filter.base.PayloadLoggingClientFilter;
 import org.onap.so.client.policy.CommonObjectMapperProvider;
-import org.onap.so.logging.jaxrs.filter.JaxRsClientLogging;
-import org.onap.so.logging.jaxrs.filter.PayloadLoggingFilter;
+import org.onap.so.logging.jaxrs.filter.SOMetricLogClientFilter;
 import org.onap.so.utils.CryptoUtils;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
     protected String accept;
     protected String contentType;
     protected String requestId = "";
-    protected JaxRsClientLogging jaxRsClientLogging;
+    protected SOMetricLogClientFilter metricLogClientFilter;
+    protected MDCSetup mdcSetup = new MDCSetup();
     protected RestProperties props;
 
     protected RestClient(RestProperties props, Optional<URI> path) {
         return ClientBuilder.newBuilder().build();
     }
 
-    protected abstract TargetEntity getTargetEntity();
+    protected abstract ONAPComponentsList getTargetEntity();
 
     protected void initializeClient(Client client) {
         if (this.enableLogging()) {
-            client.register(new PayloadLoggingFilter(this.getMaxPayloadSize()));
+            client.register(new PayloadLoggingClientFilter(this.getMaxPayloadSize()));
         }
         CommonObjectMapperProvider provider = this.getCommonObjectMapperProvider();
         client.register(new JacksonJsonProvider(provider.getMapper()));
 
-        jaxRsClientLogging = new JaxRsClientLogging();
-        jaxRsClientLogging.setTargetService(getTargetEntity());
-        client.register(jaxRsClientLogging);
+        metricLogClientFilter = new SOMetricLogClientFilter();
+        mdcSetup.setTargetEntity(getTargetEntity());
+        client.register(metricLogClientFilter);
 
         if (!path.isPresent()) {
             webTarget = client.target(host.toString());
 
 package org.onap.so.client;
 
 import org.onap.so.configuration.rest.HttpComponentsClientConfiguration;
-import org.onap.so.logging.jaxrs.filter.SpringClientFilter;
+import org.onap.so.logging.jaxrs.filter.SOSpringClientFilter;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.context.annotation.Bean;
         final RestTemplate restTemplate = new RestTemplate();
         restTemplate
                 .setRequestFactory(new BufferingClientHttpRequestFactory(new HttpComponentsClientHttpRequestFactory()));
-        restTemplate.getInterceptors().add(new SpringClientFilter());
+        restTemplate.getInterceptors().add(new SOSpringClientFilter());
         return restTemplate;
     }
 
                 httpComponentsClientConfiguration.httpComponentsClientHttpRequestFactory();
         final RestTemplate restTemplate =
                 new RestTemplate(new BufferingClientHttpRequestFactory(clientHttpRequestFactory));
-        restTemplate.getInterceptors().add(new SpringClientFilter());
+        restTemplate.getInterceptors().add(new SOSpringClientFilter());
         return restTemplate;
     }
 }
 
 import org.onap.so.client.ResponseExceptionMapper;
 import org.onap.so.client.graphinventory.GraphInventoryPatchConverter;
 import org.onap.so.client.graphinventory.GraphInventoryRestClient;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 public class AAIRestClient extends GraphInventoryRestClient {
 
     }
 
     @Override
-    public TargetEntity getTargetEntity() {
-        return TargetEntity.AAI;
+    public ONAPComponents getTargetEntity() {
+        return ONAPComponents.AAI;
     }
 
     @Override
 
 import org.onap.so.client.policy.CommonObjectMapperProvider;
 import org.onap.so.client.policy.JettisonStyleMapperProvider;
 import org.onap.so.utils.CryptoUtils;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 public class AdapterRestClient extends RestClient {
 
     }
 
     @Override
-    public TargetEntity getTargetEntity() {
-        return TargetEntity.OPENSTACK_ADAPTER;
+    public ONAPComponents getTargetEntity() {
+        return ONAPComponents.OPENSTACK_ADAPTER;
     }
 
     @Override
 
 
 import java.net.URL;
 import java.util.Map;
+import java.util.UUID;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.client.RestClient;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
+import org.slf4j.MDC;
 
 public class DMaaPRestClient extends RestClient {
 
+    private static final String SO = "SO";
     private final String auth;
     private final String key;
 
     }
 
     @Override
-    public TargetEntity getTargetEntity() {
-        return TargetEntity.DMAAP;
+    public ONAPComponents getTargetEntity() {
+        return ONAPComponents.DMAAP;
     }
 
     @Override
         if (auth != null && !auth.isEmpty() && key != null && !key.isEmpty()) {
             addBasicAuthHeader(auth, key);
         }
+        String onapRequestId = UUID.randomUUID().toString();
+        headerMap.put(ONAPLogConstants.Headers.REQUEST_ID, onapRequestId);
+        headerMap.put(ONAPLogConstants.Headers.INVOCATION_ID, MDC.get(ONAPLogConstants.MDCs.REQUEST_ID));
     }
-
 }
 
 import org.onap.so.client.RestClientSSL;
 import org.onap.so.client.RestProperties;
 import org.onap.so.client.policy.CommonObjectMapperProvider;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
+import org.onap.logging.filter.base.ONAPComponentsList;
 
 public abstract class GraphInventoryRestClient extends RestClientSSL {
 
     }
 
     @Override
-    public abstract TargetEntity getTargetEntity();
+    public abstract ONAPComponentsList getTargetEntity();
 
     @Override
     protected abstract void initializeHeaderMap(Map<String, String> headerMap);
 
 import java.util.Map;
 import java.util.Optional;
 import org.onap.so.client.RestClient;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 public class GRMRestClient extends RestClient {
 
     }
 
     @Override
-    public TargetEntity getTargetEntity() {
-        return TargetEntity.GRM;
+    public ONAPComponents getTargetEntity() {
+        return ONAPComponents.GRM;
     }
 
     @Override
 
 import javax.ws.rs.core.UriBuilder;
 import org.onap.so.client.RestClient;
 import org.onap.so.client.policy.entities.PolicyServiceType;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 public class PolicyRestClient extends RestClient {
 
     }
 
     @Override
-    public TargetEntity getTargetEntity() {
-        return TargetEntity.POLICY;
+    public ONAPComponents getTargetEntity() {
+        return ONAPComponents.POLICY;
     }
 
     @Override
 
--- /dev/null
+package org.onap.so.externaltasks.logging;
+
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
+import org.camunda.bpm.client.task.ExternalTask;
+import org.onap.logging.filter.base.MDCSetup;
+import org.onap.logging.filter.base.ONAPComponents;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.so.logger.MdcConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+import org.springframework.stereotype.Component;
+
+@Component
+public class AuditMDCSetup {
+
+    private MDCSetup mdcSetup = new MDCSetup();
+
+    private static final Logger logger = LoggerFactory.getLogger(AuditMDCSetup.class);
+
+    public void setupMDC(ExternalTask externalTask) {
+        MDC.put(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP,
+                ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_INSTANT));
+        String msoRequestId = externalTask.getVariable("mso-request-id");
+        if (msoRequestId != null && !msoRequestId.isEmpty()) {
+            MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, msoRequestId);
+        }
+        MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, externalTask.getTopicName());
+        MDC.put(ONAPLogConstants.MDCs.PARTNER_NAME, ONAPComponents.OPENSTACK_ADAPTER.toString());
+        setResponseCode(ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
+        setElapsedTime();
+        mdcSetup.setServerFQDN();
+        logger.info(ONAPLogConstants.Markers.ENTRY, "Entering");
+    }
+
+    public void setElapsedTime() {
+        DateTimeFormatter timeFormatter = DateTimeFormatter.ISO_ZONED_DATE_TIME;
+        MDC.put(ONAPLogConstants.MDCs.ELAPSED_TIME, Long.toString(System.currentTimeMillis() - ZonedDateTime
+                .parse(MDC.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP), timeFormatter).toInstant().toEpochMilli()));
+    }
+
+    public void setResponseCode(String code) {
+        MDC.put(MdcConstants.OPENSTACK_STATUS_CODE, code);
+        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, code);
+    }
+
+    public void clearClientMDCs() {
+        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE);
+        MDC.remove(MdcConstants.OPENSTACK_STATUS_CODE);
+        MDC.remove(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP);
+        MDC.remove(ONAPLogConstants.MDCs.ELAPSED_TIME);
+        MDC.remove(ONAPLogConstants.MDCs.PARTNER_NAME);
+    }
+}
 
 package org.onap.so.logger;
 
 public class HttpHeadersConstants {
-    public static final String HEADER_FROM_APP_ID = "X-FromAppId";
-    public static final String ONAP_PARTNER_NAME = "X-ONAP-PartnerName";
-    public static final String HEADER_REQUEST_ID = "X-RequestId";
-    public static final String TRANSACTION_ID = "X-TransactionID";
-    public static final String ECOMP_REQUEST_ID = "X-ECOMP-RequestID";
-    public static final String ONAP_REQUEST_ID = "X-ONAP-RequestID";
-    public static final String CLIENT_ID = "X-ClientID";
-    public static final String INVOCATION_ID_HEADER = "X-InvocationID";
     public static final String REQUESTOR_ID = "X-RequestorID";
 }
 
 package org.onap.so.logger;
 
 public class LogConstants {
-    public static final String TARGET_ENTITY_HEADER = "X-Target-Entity";
-    public static final String UNKNOWN_TARGET_ENTITY = "Unknown-Target-Entity";
     public static final String HTTP_URL = "Http-Url";
     public static final String URI_BASE = "Uri-Base";
 }
 
 package org.onap.so.logger;
 
 public class MdcConstants {
-    public static final String INVOCATION_ID = "InvocationID";
-    public static final String RESPONSECODE = "ResponseCode";
-    public static final String RESPONSEDESC = "ResponseDesc";
-    public static final String ECOMP_REQUEST_ID = "X-ECOMP-RequestID";
-    public static final String CLIENT_ID = "X-ClientID";
-    public static final String PARTNERNAME = "PartnerName";
-    public static final String SERVICE_NAME = "ServiceName";
-    public static final String STATUSCODE = "StatusCode";
-    public static final String ENDTIME = "EndTimestamp";
     public static final String ORIGINAL_PARTNER_NAME = "OriginalPartnerName";
+    public static final String OPENSTACK_STATUS_CODE = "OpenstackStatusCode";
 }
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.logging.jaxrs.filter;
-
-
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
-import org.onap.so.utils.TargetEntity;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.springframework.stereotype.Component;
-import javax.annotation.Priority;
-import javax.ws.rs.client.ClientRequestContext;
-import javax.ws.rs.client.ClientRequestFilter;
-import javax.ws.rs.client.ClientResponseContext;
-import javax.ws.rs.client.ClientResponseFilter;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.Providers;
-import java.time.ZoneOffset;
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.UUID;
-
-@SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
-@Component
-@Priority(0)
-public class JaxRsClientLogging implements ClientRequestFilter, ClientResponseFilter {
-
-    @Context
-    private Providers providers;
-
-    private static final String TRACE = "trace-#";
-    private static final String SO = "SO";
-    private static Logger logger = LoggerFactory.getLogger(JaxRsClientLogging.class);
-
-    public void setTargetService(TargetEntity targetEntity) {
-        MDC.put(ONAPLogConstants.MDCs.TARGET_ENTITY, targetEntity.toString());
-    }
-
-    @Override
-    public void filter(ClientRequestContext clientRequest) {
-        try {
-            setupMDC(clientRequest);
-            setupHeaders(clientRequest);
-            logger.info(ONAPLogConstants.Markers.INVOKE, "Invoke");
-        } catch (Exception e) {
-            logger.warn("Error in incoming JAX-RS Inteceptor", e);
-        }
-    }
-
-    private void setupHeaders(ClientRequestContext clientRequest) {
-        MultivaluedMap<String, Object> headers = clientRequest.getHeaders();
-        headers.add(ONAPLogConstants.Headers.REQUEST_ID, extractRequestID(clientRequest));
-        headers.add(ONAPLogConstants.Headers.INVOCATION_ID, MDC.get(ONAPLogConstants.MDCs.INVOCATION_ID));
-        headers.add(ONAPLogConstants.Headers.PARTNER_NAME, SO);
-    }
-
-    private void setupMDC(ClientRequestContext clientRequest) {
-        MDC.put(ONAPLogConstants.MDCs.INVOKE_TIMESTAMP,
-                ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_INSTANT));
-        MDC.put(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME, clientRequest.getUri().toString());
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
-        setInvocationId();
-        MDC.put(ONAPLogConstants.MDCs.TARGET_ENTITY, MDC.get(ONAPLogConstants.MDCs.TARGET_ENTITY));
-    }
-
-    private String extractRequestID(ClientRequestContext clientRequest) {
-        String requestId = MDC.get(ONAPLogConstants.MDCs.REQUEST_ID);
-        if (requestId == null || requestId.isEmpty() || requestId.equals(TRACE)) {
-            requestId = UUID.randomUUID().toString();
-            logger.warn("Could not Find Request ID Generating New One: {}", clientRequest.getUri().getPath());
-        }
-        return requestId;
-    }
-
-    private void setInvocationId() {
-        String invocationId = MDC.get(ONAPLogConstants.MDCs.INVOCATION_ID);
-        if (invocationId == null || invocationId.isEmpty())
-            invocationId = UUID.randomUUID().toString();
-        MDC.put(ONAPLogConstants.MDCs.INVOCATION_ID, invocationId);
-    }
-
-
-    @Override
-    public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) {
-
-        try {
-            String statusCode;
-            if (Response.Status.Family.familyOf(responseContext.getStatus())
-                    .equals(Response.Status.Family.SUCCESSFUL)) {
-                statusCode = ONAPLogConstants.ResponseStatus.COMPLETED.toString();
-            } else {
-                statusCode = ONAPLogConstants.ResponseStatus.ERROR.toString();
-            }
-            MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, String.valueOf(responseContext.getStatus()));
-            MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, statusCode);
-            logger.info(ONAPLogConstants.Markers.INVOKE_RETURN, "InvokeReturn");
-            clearClientMDCs();
-        } catch (Exception e) {
-            logger.warn("Error in outgoing JAX-RS Inteceptor", e);
-        }
-    }
-
-    private void clearClientMDCs() {
-        MDC.remove(ONAPLogConstants.MDCs.INVOCATION_ID);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_CODE);
-        MDC.remove(ONAPLogConstants.MDCs.TARGET_ENTITY);
-        MDC.remove(ONAPLogConstants.MDCs.PARTNER_NAME);
-        MDC.remove(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME);
-        MDC.remove(ONAPLogConstants.MDCs.INVOKE_TIMESTAMP);
-    }
-
-}
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.logging.jaxrs.filter;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-import java.util.UUID;
-import javax.annotation.Priority;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.container.ContainerRequestContext;
-import javax.ws.rs.container.ContainerRequestFilter;
-import javax.ws.rs.container.ContainerResponseContext;
-import javax.ws.rs.container.ContainerResponseFilter;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.MessageBodyWriter;
-import javax.ws.rs.ext.Provider;
-import javax.ws.rs.ext.Providers;
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
-import org.onap.so.logger.HttpHeadersConstants;
-import org.onap.so.logger.LogConstants;
-import org.onap.so.logger.MdcConstants;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-@Priority(1)
-@Provider
-@Component
-public class JaxRsFilterLogging implements ContainerRequestFilter, ContainerResponseFilter {
-
-    protected static Logger logger = LoggerFactory.getLogger(JaxRsFilterLogging.class);
-
-    @Context
-    private HttpServletRequest httpServletRequest;
-
-    @Context
-    private Providers providers;
-
-    @Autowired
-    private MDCSetup mdcSetup;
-
-    @Override
-    public void filter(ContainerRequestContext containerRequest) {
-        try {
-            MultivaluedMap<String, String> headers = containerRequest.getHeaders();
-            setRequestId(headers);
-            containerRequest.setProperty("requestId", MDC.get(ONAPLogConstants.MDCs.REQUEST_ID));
-            setInvocationId(headers);
-            setServiceName(containerRequest);
-            setMDCPartnerName(headers);
-            mdcSetup.setServerFQDN();
-            mdcSetup.setClientIPAddress(httpServletRequest);
-            mdcSetup.setInstanceUUID();
-            mdcSetup.setEntryTimeStamp();
-            MDC.put(HttpHeadersConstants.REQUESTOR_ID, headers.getFirst("X-RequestorID"));
-            MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
-            MDC.put(LogConstants.URI_BASE, containerRequest.getUriInfo().getBaseUri().toString());
-            MDC.put(MdcConstants.ORIGINAL_PARTNER_NAME, MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME));
-            logger.info(ONAPLogConstants.Markers.ENTRY, "Entering");
-        } catch (Exception e) {
-            logger.warn("Error in incoming JAX-RS Inteceptor", e);
-        }
-    }
-
-    @Override
-    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
-            throws IOException {
-        try {
-            setResponseStatusCode(responseContext);
-            MDC.put(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION, payloadMessage(responseContext));
-            MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, String.valueOf(responseContext.getStatus()));
-            logger.info(ONAPLogConstants.Markers.EXIT, "Exiting.");
-            MDC.clear();
-        } catch (Exception e) {
-            MDC.clear();
-            logger.warn("Error in outgoing JAX-RS Inteceptor", e);
-        }
-    }
-
-    private void setResponseStatusCode(ContainerResponseContext responseContext) {
-        String statusCode;
-        if (Response.Status.Family.familyOf(responseContext.getStatus()).equals(Response.Status.Family.SUCCESSFUL)) {
-            statusCode = ONAPLogConstants.ResponseStatus.COMPLETED.toString();
-        } else {
-            statusCode = ONAPLogConstants.ResponseStatus.ERROR.toString();
-        }
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, statusCode);
-    }
-
-    private String payloadMessage(ContainerResponseContext responseContext) throws IOException {
-        String message = "";
-        if (responseContext.hasEntity()) {
-            ByteArrayOutputStream baos = new ByteArrayOutputStream();
-            Class<?> entityClass = responseContext.getEntityClass();
-            Type entityType = responseContext.getEntityType();
-            Annotation[] entityAnnotations = responseContext.getEntityAnnotations();
-            MediaType mediaType = responseContext.getMediaType();
-            @SuppressWarnings("unchecked")
-            MessageBodyWriter<Object> bodyWriter = (MessageBodyWriter<Object>) providers
-                    .getMessageBodyWriter(entityClass, entityType, entityAnnotations, mediaType);
-            bodyWriter.writeTo(responseContext.getEntity(), entityClass, entityType, entityAnnotations, mediaType,
-                    responseContext.getHeaders(), baos);
-            message = message.concat(new String(baos.toByteArray()));
-        }
-        return message;
-    }
-
-    private void setRequestId(MultivaluedMap<String, String> headers) {
-        String requestId = headers.getFirst(ONAPLogConstants.Headers.REQUEST_ID);
-        if (requestId == null || requestId.isEmpty())
-            requestId = UUID.randomUUID().toString();
-        MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, requestId);
-    }
-
-    private void setInvocationId(MultivaluedMap<String, String> headers) {
-        MDC.put(ONAPLogConstants.MDCs.INVOCATION_ID, findInvocationId(headers));
-    }
-
-    private void setMDCPartnerName(MultivaluedMap<String, String> headers) {
-        String partnerName = headers.getFirst(ONAPLogConstants.Headers.PARTNER_NAME);
-        if (partnerName == null || partnerName.isEmpty())
-            partnerName = "";
-        MDC.put(ONAPLogConstants.MDCs.PARTNER_NAME, partnerName);
-    }
-
-    private String findInvocationId(MultivaluedMap<String, String> headers) {
-        String invocationId = headers.getFirst(ONAPLogConstants.Headers.INVOCATION_ID);
-        if (invocationId == null || invocationId.isEmpty())
-            invocationId = UUID.randomUUID().toString();
-        return invocationId;
-    }
-
-    private void setServiceName(ContainerRequestContext containerRequest) {
-        MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, containerRequest.getUriInfo().getPath());
-    }
-
-    private void clearClientMDCs() {
-        MDC.remove(ONAPLogConstants.MDCs.INVOCATION_ID);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_CODE);
-        MDC.remove(ONAPLogConstants.MDCs.TARGET_ENTITY);
-        MDC.remove(ONAPLogConstants.MDCs.PARTNER_NAME);
-        MDC.remove(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME);
-    }
-
-}
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.logging.jaxrs.filter;
-
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.time.ZoneOffset;
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.Map;
-import java.util.UUID;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.core.Response;
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.springframework.stereotype.Component;
-
-@Component
-public class MDCSetup {
-
-    protected static Logger logger = LoggerFactory.getLogger(MDCSetup.class);
-
-    private static final String INSTANCE_UUID = UUID.randomUUID().toString();
-
-    public void setInstanceUUID() {
-        MDC.put(ONAPLogConstants.MDCs.INSTANCE_UUID, INSTANCE_UUID);
-    }
-
-    public void setServerFQDN() {
-        String serverFQDN = "";
-        InetAddress addr = null;
-        try {
-            addr = InetAddress.getLocalHost();
-            serverFQDN = addr.toString();
-        } catch (UnknownHostException e) {
-            logger.warn("Cannot Resolve Host Name");
-            serverFQDN = "";
-        }
-        MDC.put(ONAPLogConstants.MDCs.SERVER_FQDN, serverFQDN);
-    }
-
-    public void setClientIPAddress(HttpServletRequest httpServletRequest) {
-        String remoteIpAddress = "";
-        if (httpServletRequest != null) {
-            remoteIpAddress = httpServletRequest.getRemoteAddr();
-        }
-        MDC.put(ONAPLogConstants.MDCs.CLIENT_IP_ADDRESS, remoteIpAddress);
-    }
-
-    public void setEntryTimeStamp() {
-        MDC.put(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP,
-                ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_INSTANT));
-    }
-
-    public void setServiceName(HttpServletRequest request) {
-        MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, request.getRequestURI());
-    }
-
-    public void setRequestId(Map<String, String> headers) {
-        String requestId = headers.get(ONAPLogConstants.Headers.REQUEST_ID);
-        if (requestId == null || requestId.isEmpty())
-            requestId = UUID.randomUUID().toString();
-        MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, requestId);
-    }
-
-    public void setInvocationId(Map<String, String> headers) {
-        String invocationId = headers.get(ONAPLogConstants.Headers.INVOCATION_ID);
-        if (invocationId == null || invocationId.isEmpty())
-            invocationId = UUID.randomUUID().toString();
-        MDC.put(ONAPLogConstants.MDCs.INVOCATION_ID, invocationId);
-    }
-
-    public void setMDCPartnerName(Map<String, String> headers) {
-        String partnerName = headers.get(ONAPLogConstants.Headers.PARTNER_NAME);
-        if (partnerName == null || partnerName.isEmpty())
-            partnerName = "";
-        MDC.put(ONAPLogConstants.MDCs.PARTNER_NAME, partnerName);
-    }
-
-
-    public void setResponseStatusCode(HttpServletResponse response) {
-        String statusCode;
-        if (Response.Status.Family.familyOf(response.getStatus()).equals(Response.Status.Family.SUCCESSFUL)) {
-            statusCode = ONAPLogConstants.ResponseStatus.COMPLETED.toString();
-        } else {
-            statusCode = ONAPLogConstants.ResponseStatus.ERROR.toString();
-        }
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, statusCode);
-    }
-}
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.logging.jaxrs.filter;
-
-import java.util.Map;
-import org.slf4j.MDC;
-import org.springframework.core.task.TaskDecorator;
-
-public class MDCTaskDecorator implements TaskDecorator {
-
-    @Override
-    public Runnable decorate(Runnable runnable) {
-        Map<String, String> contextMap = MDC.getCopyOfContextMap();
-        return () -> {
-            try {
-                if (contextMap != null) {
-                    MDC.setContextMap(contextMap);
-                    runnable.run();
-                }
-            } finally {
-                MDC.clear();
-            }
-        };
-    }
-}
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.logging.jaxrs.filter;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.FilterOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.nio.charset.Charset;
-import java.nio.charset.StandardCharsets;
-import javax.annotation.Priority;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.client.ClientRequestContext;
-import javax.ws.rs.client.ClientRequestFilter;
-import javax.ws.rs.client.ClientResponseContext;
-import javax.ws.rs.client.ClientResponseFilter;
-import javax.ws.rs.ext.Provider;
-import javax.ws.rs.ext.WriterInterceptor;
-import javax.ws.rs.ext.WriterInterceptorContext;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-@Provider
-@Priority(1)
-public class PayloadLoggingFilter implements ClientRequestFilter, ClientResponseFilter, WriterInterceptor {
-
-    private static final Logger logger = LoggerFactory.getLogger(PayloadLoggingFilter.class);
-    private static final String ENTITY_STREAM_PROPERTY = "LoggingFilter.entityStream";
-    private static final Charset DEFAULT_CHARSET = StandardCharsets.UTF_8;
-    private final int maxEntitySize;
-
-    public PayloadLoggingFilter() {
-        maxEntitySize = 1024 * 1024;
-    }
-
-    public PayloadLoggingFilter(int maxPayloadSize) {
-        this.maxEntitySize = Integer.min(maxPayloadSize, 1024 * 1024);
-    }
-
-    private void log(StringBuilder sb) {
-        logger.debug(sb.toString());
-    }
-
-    protected InputStream logInboundEntity(final StringBuilder b, InputStream stream, final Charset charset)
-            throws IOException {
-        if (!stream.markSupported()) {
-            stream = new BufferedInputStream(stream);
-        }
-        stream.mark(maxEntitySize + 1);
-        final byte[] entity = new byte[maxEntitySize + 1];
-        final int entitySize = stream.read(entity);
-        if (entitySize != -1) {
-            b.append(new String(entity, 0, Math.min(entitySize, maxEntitySize), charset));
-        }
-        if (entitySize > maxEntitySize) {
-            b.append("...more...");
-        }
-        b.append('\n');
-        stream.reset();
-        return stream;
-    }
-
-    @Override
-    public void filter(ClientRequestContext requestContext) throws IOException {
-        if (requestContext.hasEntity()) {
-            final OutputStream stream = new LoggingStream(requestContext.getEntityStream());
-            requestContext.setEntityStream(stream);
-            requestContext.setProperty(ENTITY_STREAM_PROPERTY, stream);
-        }
-        String method = formatMethod(requestContext);
-        log(new StringBuilder("Making " + method + " request to: " + requestContext.getUri() + "\nRequest Headers: "
-                + requestContext.getHeaders().toString()));
-
-    }
-
-    @Override
-    public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
-        final StringBuilder sb = new StringBuilder();
-        if (responseContext.hasEntity()) {
-            responseContext.setEntityStream(logInboundEntity(sb, responseContext.getEntityStream(), DEFAULT_CHARSET));
-            String method = formatMethod(requestContext);
-            log(sb.insert(0, "Response from " + method + ": " + requestContext.getUri() + "\nResponse Headers: "
-                    + responseContext.getHeaders().toString()));
-        }
-    }
-
-    @Override
-    public void aroundWriteTo(WriterInterceptorContext context) throws IOException, WebApplicationException {
-        final LoggingStream stream = (LoggingStream) context.getProperty(ENTITY_STREAM_PROPERTY);
-        context.proceed();
-        if (stream != null) {
-            log(stream.getStringBuilder(DEFAULT_CHARSET));
-        }
-    }
-
-    private class LoggingStream extends FilterOutputStream {
-
-        private final StringBuilder sb = new StringBuilder();
-        private final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
-        LoggingStream(OutputStream out) {
-            super(out);
-        }
-
-        StringBuilder getStringBuilder(Charset charset) {
-            // write entity to the builder
-            final byte[] entity = baos.toByteArray();
-
-            sb.append(new String(entity, 0, entity.length, charset));
-            if (entity.length > maxEntitySize) {
-                sb.append("...more...");
-            }
-            sb.append('\n');
-
-            return sb;
-        }
-
-        @Override
-        public void write(final int i) throws IOException {
-            if (baos.size() <= maxEntitySize) {
-                baos.write(i);
-            }
-            out.write(i);
-        }
-    }
-
-    private String formatMethod(ClientRequestContext requestContext) {
-        String method = requestContext.getHeaderString("X-HTTP-Method-Override");
-        if (method == null) {
-            method = requestContext.getMethod();
-        } else {
-            method = requestContext.getMethod() + " (overridden to " + method + ")";
-        }
-
-        return method;
-    }
-}
 
--- /dev/null
+package org.onap.so.logging.jaxrs.filter;
+
+import javax.annotation.Priority;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerResponseContext;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.so.logger.HttpHeadersConstants;
+import org.onap.so.logger.LogConstants;
+import org.slf4j.MDC;
+import org.springframework.stereotype.Component;
+import org.onap.logging.filter.base.AuditLogContainerFilter;
+
+@Priority(1)
+@Component
+public class SOAuditLogContainerFilter extends AuditLogContainerFilter {
+
+    private static final String ORIGINAL_PARTNER_NAME = "OriginalPartnerName";
+
+    @Override
+    protected void additionalPreHandling(ContainerRequestContext request) {
+        request.setProperty("requestId", MDC.get(ONAPLogConstants.MDCs.REQUEST_ID));
+        MDC.put(ORIGINAL_PARTNER_NAME, MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+        String requestorId = request.getHeaders().getFirst("X-RequestorID");
+        if (requestorId != null) {
+            MDC.put(HttpHeadersConstants.REQUESTOR_ID, requestorId);
+        }
+        MDC.put(LogConstants.URI_BASE, request.getUriInfo().getBaseUri().toString());
+    }
+
+    @Override
+    protected void additionalPostHandling(ContainerResponseContext response) {
+        // override to add additional post handling
+    }
+}
 
--- /dev/null
+package org.onap.so.logging.jaxrs.filter;
+
+import javax.ws.rs.client.ClientRequestContext;
+import javax.ws.rs.client.ClientResponseContext;
+import org.onap.logging.filter.base.MDCSetup;
+import org.onap.logging.filter.base.MetricLogClientFilter;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.so.logger.MdcConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+import org.slf4j.Marker;
+import org.slf4j.MarkerFactory;
+
+
+public class SOMetricLogClientFilter extends MetricLogClientFilter {
+
+    protected static Logger logger = LoggerFactory.getLogger(MDCSetup.class);
+    private static final Marker INVOKE_RETURN = MarkerFactory.getMarker("INVOKE-RETURN");
+
+    private MDCSetup mdcSetup = new MDCSetup();
+
+    @Override
+    public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) {
+        try {
+            mdcSetup.setLogTimestamp();
+            mdcSetup.setElapsedTimeInvokeTimestamp();
+            mdcSetup.setResponseStatusCode(responseContext.getStatus());
+            mdcSetup.setResponseDescription(responseContext.getStatus());
+            MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, String.valueOf(responseContext.getStatus()));
+            logger.info(INVOKE_RETURN, "InvokeReturn");
+            mdcSetup.clearClientMDCs();
+            setOpenStackResponseCode();
+        } catch (Exception e) {
+            logger.warn("Error in JAX-RS request,response client filter", e);
+        }
+    }
+
+    protected void setOpenStackResponseCode() {
+        if (MDC.get(MdcConstants.OPENSTACK_STATUS_CODE) != null) {
+            MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, MDC.get(MdcConstants.OPENSTACK_STATUS_CODE));
+        }
+    }
+}
 
--- /dev/null
+package org.onap.so.logging.jaxrs.filter;
+
+import java.io.IOException;
+import java.nio.charset.Charset;
+import org.onap.logging.filter.base.MDCSetup;
+import org.onap.logging.filter.spring.SpringClientFilter;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.so.logger.MdcConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+import org.slf4j.Marker;
+import org.slf4j.MarkerFactory;
+import org.springframework.http.client.ClientHttpRequestInterceptor;
+import org.springframework.http.client.ClientHttpResponse;
+import org.springframework.stereotype.Component;
+import org.springframework.util.StreamUtils;
+
+@Component
+public class SOSpringClientFilter extends SpringClientFilter implements ClientHttpRequestInterceptor {
+
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+    private MDCSetup mdcSetup = new MDCSetup();
+    private static final Marker INVOKE_RETURN = MarkerFactory.getMarker("INVOKE-RETURN");
+
+
+    protected void processResponse(ClientHttpResponse response) throws IOException {
+        if (logger.isDebugEnabled()) {
+            logger.debug("============================response begin==========================================");
+            logger.debug("Status code  : {}", response.getStatusCode());
+            logger.debug("Status text  : {}", response.getStatusText());
+            logger.debug("Headers      : {}", response.getHeaders());
+            logger.debug("Response body: {}", StreamUtils.copyToString(response.getBody(), Charset.defaultCharset()));
+            logger.debug("=======================response end=================================================");
+        }
+        mdcSetup.setLogTimestamp();
+        mdcSetup.setElapsedTimeInvokeTimestamp();
+        mdcSetup.setResponseStatusCode(response.getRawStatusCode());
+        int statusCode = response.getRawStatusCode();
+        MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, String.valueOf(statusCode));
+        mdcSetup.setResponseDescription(statusCode);
+        logger.info(INVOKE_RETURN, "InvokeReturn");
+        mdcSetup.clearClientMDCs();
+        setOpenStackResponseCode();
+    }
+
+    protected void setOpenStackResponseCode() {
+        if (MDC.get(MdcConstants.OPENSTACK_STATUS_CODE) != null) {
+            MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, MDC.get(MdcConstants.OPENSTACK_STATUS_CODE));
+        }
+    }
+}
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.logging.jaxrs.filter;
-
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
-import org.onap.so.logger.LogConstants;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpRequest;
-import org.springframework.http.client.ClientHttpRequestExecution;
-import org.springframework.http.client.ClientHttpRequestInterceptor;
-import org.springframework.http.client.ClientHttpResponse;
-import org.springframework.util.StreamUtils;
-import java.io.IOException;
-import java.nio.charset.Charset;
-import java.time.ZoneOffset;
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.List;
-import java.util.UUID;
-import javax.ws.rs.core.Response;
-
-public class SpringClientFilter implements ClientHttpRequestInterceptor {
-
-    private final Logger log = LoggerFactory.getLogger(this.getClass());
-
-    private static final String TRACE = "trace-#";
-    private static final String SO = "SO";
-
-    @Override
-    public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution)
-            throws IOException {
-        processRequest(request, body);
-        ClientHttpResponse response = execution.execute(request, body);
-        processResponse(response);
-        return response;
-    }
-
-    private void processRequest(HttpRequest request, byte[] body) throws IOException {
-        setInvocationId();
-        setupHeaders(request);
-        setupMDC(request);
-        if (log.isDebugEnabled()) {
-            log.debug("===========================request begin================================================");
-            log.debug("URI         : {}", request.getURI());
-            log.debug("Method      : {}", request.getMethod());
-            log.debug("Headers     : {}", request.getHeaders());
-            log.debug("Request body: {}", new String(body, "UTF-8"));
-            log.debug("==========================request end================================================");
-        }
-    }
-
-    private void setupHeaders(HttpRequest clientRequest) {
-        HttpHeaders headers = clientRequest.getHeaders();
-        headers.add(ONAPLogConstants.Headers.REQUEST_ID, extractRequestID(clientRequest));
-        headers.add(ONAPLogConstants.Headers.INVOCATION_ID, MDC.get(ONAPLogConstants.MDCs.INVOCATION_ID));
-        headers.add(ONAPLogConstants.Headers.PARTNER_NAME, SO);
-    }
-
-    private String extractRequestID(HttpRequest clientRequest) {
-        String requestId = MDC.get(ONAPLogConstants.MDCs.REQUEST_ID);
-        if (requestId == null || requestId.isEmpty() || requestId.equals(TRACE)) {
-            requestId = UUID.randomUUID().toString();
-            log.warn("Could not Find Request ID Generating New One: {}", clientRequest.getURI());
-        }
-        return requestId;
-    }
-
-    private void setupMDC(HttpRequest clientRequest) {
-        MDC.put(ONAPLogConstants.MDCs.INVOKE_TIMESTAMP,
-                ZonedDateTime.now(ZoneOffset.UTC).format(DateTimeFormatter.ISO_INSTANT));
-        MDC.put(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME, clientRequest.getURI().toString());
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
-        MDC.put(ONAPLogConstants.MDCs.TARGET_ENTITY, extractTargetEntity(clientRequest));
-    }
-
-    private String extractTargetEntity(HttpRequest clientRequest) {
-        HttpHeaders headers = clientRequest.getHeaders();
-        String headerTargetEntity = null;
-        List<String> headerTargetEntityList = headers.get(LogConstants.TARGET_ENTITY_HEADER);
-        if (headerTargetEntityList != null && !headerTargetEntityList.isEmpty())
-            headerTargetEntity = headerTargetEntityList.get(0);
-        String targetEntity = MDC.get(ONAPLogConstants.MDCs.TARGET_ENTITY);
-        if (targetEntity != null && !targetEntity.isEmpty()) {
-            return targetEntity;
-        } else if (headerTargetEntity != null && !headerTargetEntity.isEmpty()) {
-            targetEntity = headerTargetEntity;
-        } else {
-            targetEntity = LogConstants.UNKNOWN_TARGET_ENTITY;
-            log.warn("Could not Target Entity: {}", clientRequest.getURI());
-        }
-        return targetEntity;
-    }
-
-    private void setInvocationId() {
-        String invocationId = MDC.get(ONAPLogConstants.MDCs.INVOCATION_ID);
-        if (invocationId == null || invocationId.isEmpty())
-            invocationId = UUID.randomUUID().toString();
-        MDC.put(ONAPLogConstants.MDCs.INVOCATION_ID, invocationId);
-    }
-
-
-    private void processResponse(ClientHttpResponse response) throws IOException {
-        if (log.isDebugEnabled()) {
-            log.debug("============================response begin==========================================");
-            log.debug("Status code  : {}", response.getStatusCode());
-            log.debug("Status text  : {}", response.getStatusText());
-            log.debug("Headers      : {}", response.getHeaders());
-            log.debug("Response body: {}", StreamUtils.copyToString(response.getBody(), Charset.defaultCharset()));
-            log.debug("=======================response end=================================================");
-        }
-        String statusCode;
-        if (Response.Status.Family.familyOf(response.getRawStatusCode()).equals(Response.Status.Family.SUCCESSFUL)) {
-            statusCode = ONAPLogConstants.ResponseStatus.COMPLETED.toString();
-        } else {
-            statusCode = ONAPLogConstants.ResponseStatus.ERROR.toString();
-        }
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, String.valueOf(response.getRawStatusCode()));
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION, "");
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, statusCode);
-        log.info(ONAPLogConstants.Markers.INVOKE_RETURN, "InvokeReturn");
-        clearClientMDCs();
-    }
-
-    private void clearClientMDCs() {
-        MDC.remove(ONAPLogConstants.MDCs.INVOCATION_ID);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION);
-        MDC.remove(ONAPLogConstants.MDCs.RESPONSE_CODE);
-        MDC.remove(ONAPLogConstants.MDCs.TARGET_ENTITY);
-        MDC.remove(ONAPLogConstants.MDCs.PARTNER_NAME);
-        MDC.remove(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME);
-        MDC.remove(ONAPLogConstants.MDCs.INVOKE_TIMESTAMP);
-    }
-}
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.logging.spring.interceptor;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.UUID;
-import java.util.stream.Collectors;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.ext.Providers;
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
-import org.onap.so.logging.jaxrs.filter.MDCSetup;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.slf4j.MDC;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-
-@Component
-public class LoggingInterceptor extends HandlerInterceptorAdapter {
-
-    Logger logger = LoggerFactory.getLogger(LoggingInterceptor.class);
-
-    @Autowired
-    private MDCSetup mdcSetup;
-
-    @Context
-    private Providers providers;
-
-    @Override
-    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
-            throws Exception {
-
-        Map<String, String> headers = Collections.list((request).getHeaderNames()).stream()
-                .collect(Collectors.toMap(h -> h, request::getHeader));
-        setRequestId(headers);
-        setInvocationId(headers);
-        setServiceName(request);
-        setMDCPartnerName(headers);
-        mdcSetup.setClientIPAddress(request);
-        mdcSetup.setEntryTimeStamp();
-        mdcSetup.setInstanceUUID();
-        mdcSetup.setServerFQDN();
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
-        logger.info(ONAPLogConstants.Markers.ENTRY, "Entering");
-        if (logger.isDebugEnabled())
-            logRequestInformation(request);
-        return true;
-    }
-
-    protected void logRequestInformation(HttpServletRequest request) {
-        Map<String, String> headers = Collections.list((request).getHeaderNames()).stream()
-                .collect(Collectors.toMap(h -> h, request::getHeader));
-
-        logger.debug("===========================request begin================================================");
-        logger.debug("URI         : {}", request.getRequestURI());
-        logger.debug("Method      : {}", request.getMethod());
-        logger.debug("Headers     : {}", headers);
-        logger.debug("==========================request end================================================");
-
-    }
-
-    @Override
-    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
-            ModelAndView modelAndView) throws Exception {
-        setResponseStatusCode(response);
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION, "");
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_CODE, String.valueOf(response.getStatus()));
-        logger.info(ONAPLogConstants.Markers.EXIT, "Exiting.");
-        MDC.clear();
-    }
-
-    protected void setResponseStatusCode(HttpServletResponse response) {
-        String statusCode;
-        if (Response.Status.Family.familyOf(response.getStatus()).equals(Response.Status.Family.SUCCESSFUL)) {
-            statusCode = ONAPLogConstants.ResponseStatus.COMPLETED.toString();
-        } else {
-            statusCode = ONAPLogConstants.ResponseStatus.ERROR.toString();
-        }
-        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, statusCode);
-    }
-
-    protected void setServiceName(HttpServletRequest request) {
-        MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, request.getRequestURI());
-    }
-
-    protected void setRequestId(Map<String, String> headers) {
-        String requestId = headers.get(ONAPLogConstants.Headers.REQUEST_ID.toLowerCase());
-        if (requestId == null || requestId.isEmpty())
-            requestId = UUID.randomUUID().toString();
-        MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, requestId);
-    }
-
-    protected void setInvocationId(Map<String, String> headers) {
-        String invocationId = headers.get(ONAPLogConstants.Headers.INVOCATION_ID.toLowerCase());
-        if (invocationId == null || invocationId.isEmpty())
-            invocationId = UUID.randomUUID().toString();
-        MDC.put(ONAPLogConstants.MDCs.INVOCATION_ID, invocationId);
-    }
-
-    protected void setMDCPartnerName(Map<String, String> headers) {
-        String partnerName = headers.get(ONAPLogConstants.Headers.PARTNER_NAME.toLowerCase());
-        if (partnerName == null || partnerName.isEmpty())
-            partnerName = "";
-        MDC.put(ONAPLogConstants.MDCs.PARTNER_NAME, partnerName);
-    }
-
-
-}
 
--- /dev/null
+package org.onap.so.utils;
+
+import org.onap.logging.filter.base.ONAPComponentsList;
+
+public enum Components implements ONAPComponentsList {
+    OPENSTACK, UNKNOWN;
+}
 
         }
         return seq;
     }
-
-    protected void setupMDC(ExternalTask externalTask) {
-        logger.info(ONAPLogConstants.Markers.ENTRY, "Entering");
-        String msoRequestId = externalTask.getVariable("mso-request-id");
-        if (msoRequestId != null && !msoRequestId.isEmpty()) {
-            MDC.put(ONAPLogConstants.MDCs.REQUEST_ID, msoRequestId);
-        }
-        MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, externalTask.getTopicName());
-    }
-
 }
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.utils;
-
-import java.io.Serializable;
-
-public interface TargetEntities extends Serializable {
-
-}
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- * ONAP - SO
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.so.utils;
-
-import java.util.EnumSet;
-
-public enum TargetEntity implements TargetEntities {
-    OPENSTACK_ADAPTER,
-    BPMN,
-    GRM,
-    AAI,
-    DMAAP,
-    POLICY,
-    CATALOG_DB,
-    REQUEST_DB,
-    VNF_ADAPTER,
-    SDNC_ADAPTER,
-    SNIRO,
-    SDC,
-    EXTERNAL,
-    MULTICLOUD,
-    OOF,
-    SDNC,
-    SO,
-    UNKNOWN,
-    OPENSTACK;
-
-    private static final String PREFIX = "SO";
-
-    public static EnumSet<TargetEntity> getSOInternalComponents() {
-        return EnumSet.of(OPENSTACK_ADAPTER, BPMN, CATALOG_DB, REQUEST_DB, VNF_ADAPTER, SDNC_ADAPTER);
-    }
-
-    @Override
-    public String toString() {
-        if (getSOInternalComponents().contains(this))
-            return TargetEntity.PREFIX + "." + this.name();
-        else
-            return this.name();
-    }
-}
 
 import java.net.URL;
 import org.junit.Rule;
 import org.junit.Test;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import com.github.tomakehurst.wiremock.junit.WireMockRule;
 
 public class HttpClientTest {
                 .willReturn(aResponse().withStatus(200).withHeader("Content-Type", "application/json").withBody("")));
 
         URL url = new URL("http://localhost:" + wireMockConfig().portNumber() + "/services/sdnc/post");
-        HttpClient client = httpClientFactory.newJsonClient(url, TargetEntity.BPMN);
+        HttpClient client = httpClientFactory.newJsonClient(url, ONAPComponents.BPMN);
 
         client.addBasicAuthHeader(
                 "97FF88AB352DA16E00DDD81E3876431DEF8744465DACA489EB3B3BE1F10F63EDA1715E626D0A4827A3E19CD88421BF",
                 .willReturn(aResponse().withStatus(200).withHeader("Content-Type", "application/json").withBody("")));
 
         URL url = new URL("http://localhost:" + wireMockConfig().portNumber() + "/services/sdnc/post");
-        HttpClient client = httpClientFactory.newJsonClient(url, TargetEntity.BPMN);
+        HttpClient client = httpClientFactory.newJsonClient(url, ONAPComponents.BPMN);
 
         client.addAdditionalHeader("Accept", "application/json");
         client.addAdditionalHeader("id", null);
                 .willReturn(aResponse().withStatus(200).withHeader("Content-Type", "application/json").withBody("")));
 
         URL url = new URL("http://localhost:" + wireMockConfig().portNumber() + "/services/sdnc/post");
-        HttpClient client = httpClientFactory.newJsonClient(url, TargetEntity.BPMN);
+        HttpClient client = httpClientFactory.newJsonClient(url, ONAPComponents.BPMN);
 
         client.addBasicAuthHeader("", "12345");
         client.addAdditionalHeader("Accept", "application/json");
 
 import org.mockito.ArgumentMatchers;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 @RunWith(MockitoJUnitRunner.class)
 public class RestClientTest {
 
     private RestClient buildSpy() throws MalformedURLException, IllegalArgumentException, UriBuilderException {
         RestClient client = httpClientFactory.newJsonClient(UriBuilder.fromUri("http://localhost/test").build().toURL(),
-                TargetEntity.BPMN);
+                ONAPComponents.BPMN);
 
         return spy(client);
     }
 
 import org.junit.Test;
 import org.onap.so.client.policy.JettisonStyleMapperProvider;
 import org.onap.so.utils.CryptoUtils;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 
 public class AdapterRestClientTest {
 
     }
 
     @Test
-    public void getTargetEntity_success() throws URISyntaxException {
+    public void getONAPComponents_success() throws URISyntaxException {
         AdapterRestClient testedObject = new AdapterRestClient(adapterRestPropertiesMock, new URI(""));
-        assertThat(testedObject.getTargetEntity()).isEqualTo(TargetEntity.OPENSTACK_ADAPTER);
+        assertThat(testedObject.getTargetEntity()).isEqualTo(ONAPComponents.OPENSTACK_ADAPTER);
     }
 
     @Test
 
--- /dev/null
+package org.onap.so.externaltasks.logging;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.mockito.Mockito.doReturn;
+import org.camunda.bpm.client.task.ExternalTask;
+import org.junit.After;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.so.logger.MdcConstants;
+import org.slf4j.MDC;
+
+@RunWith(MockitoJUnitRunner.class)
+public class AuditMDCSetupTest {
+
+    @Mock
+    private ExternalTask externalTask;
+
+    @Spy
+    @InjectMocks
+    private AuditMDCSetup mdcSetup;
+
+    private String requestId = "9bb86b8d-a02f-4a0b-81a9-2eb963850009";
+    private String serviceName = "testServiceName";
+
+    @After
+    public void tearDown() {
+        MDC.clear();
+    }
+
+    @Test
+    public void setupMDCTest() {
+        doReturn(requestId).when(externalTask).getVariable("mso-request-id");
+        doReturn(serviceName).when(externalTask).getTopicName();
+
+        mdcSetup.setupMDC(externalTask);
+
+        assertNotNull(MDC.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
+        assertEquals(requestId, MDC.get(ONAPLogConstants.MDCs.REQUEST_ID));
+        assertEquals(serviceName, MDC.get(ONAPLogConstants.MDCs.SERVICE_NAME));
+        assertEquals("SO.OPENSTACK_ADAPTER", MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+        assertEquals(ONAPLogConstants.ResponseStatus.INPROGRESS.toString(),
+                MDC.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+    }
+
+    @Test
+    public void setElapsedTimeTest() {
+        MDC.put(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP, "2019-06-18T02:09:06.024Z");
+
+        mdcSetup.setElapsedTime();
+
+        assertNotNull(MDC.get(ONAPLogConstants.MDCs.ELAPSED_TIME));
+    }
+
+    @Test
+    public void setResponseCodeTest() {
+        mdcSetup.setResponseCode(ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
+
+        assertEquals(ONAPLogConstants.ResponseStatus.INPROGRESS.toString(),
+                MDC.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+        assertEquals(ONAPLogConstants.ResponseStatus.INPROGRESS.toString(),
+                MDC.get(MdcConstants.OPENSTACK_STATUS_CODE));
+    }
+
+    @Test
+    public void clearClientMDCsTest() {
+        MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
+        MDC.put(MdcConstants.OPENSTACK_STATUS_CODE, ONAPLogConstants.ResponseStatus.INPROGRESS.toString());
+        MDC.put(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP, "2019-06-18T02:09:06.024Z");
+        MDC.put(ONAPLogConstants.MDCs.ELAPSED_TIME, "318");
+        MDC.put(ONAPLogConstants.MDCs.PARTNER_NAME, "SO.OPENSTACK_ADAPTER");
+
+        mdcSetup.clearClientMDCs();
+
+        assertNull(MDC.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+        assertNull(MDC.get(MdcConstants.OPENSTACK_STATUS_CODE));
+        assertNull(MDC.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
+        assertNull(MDC.get(ONAPLogConstants.MDCs.ELAPSED_TIME));
+        assertNull(MDC.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+
+    }
+
+}
 
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-api</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.onap.logging-analytics</groupId>
-      <artifactId>logging-slf4j</artifactId>
-      <version>1.2.2</version>
-    </dependency>
   </dependencies>
   <build>
     <resources>
 
 
     // CXF Appears to flatten headers to lower case
     private void setMDCPartnerName(Map<String, List<String>> headers) {
-        String partnerName = getValueOrDefault(headers, ONAPLogConstants.Headers.PARTNER_NAME.toLowerCase(), "");
+        String partnerName = getValueOrDefault(headers, ONAPLogConstants.Headers.PARTNER_NAME.toLowerCase(), "UNKNOWN");
         MDC.put(ONAPLogConstants.MDCs.PARTNER_NAME, partnerName);
     }
 
 
             Exception ex = message.getContent(Exception.class);
             if (ex == null) {
                 MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE,
-                        ONAPLogConstants.ResponseStatus.COMPLETED.toString());
+                        ONAPLogConstants.ResponseStatus.COMPLETE.toString());
             } else {
                 int responseCode = 0;
                 responseCode = (int) message.get(Message.RESPONSE_CODE);
 
--- /dev/null
+<!-- ============LICENSE_START======================================================= 
+       ECOMP MSO ================================================================================ 
+       Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. ================================================================================ 
+       Licensed under the Apache License, Version 2.0 (the "License"); you may not 
+       use this file except in compliance with the License. You may obtain a copy 
+       of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+       by applicable law or agreed to in writing, software distributed under the 
+       License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+       OF ANY KIND, either express or implied. See the License for the specific 
+       language governing permissions and limitations under the License. ============LICENSE_END========================================================= -->
+
+<configuration scan="false" debug="false">
+       <contextListener class="org.onap.so.logger.LoggerStartupListener" />
+
+       <property name="queueSize" value="256" />
+       <property name="maxFileSize" value="200MB" />
+       <property name="maxHistory" value="30" />
+       <property name="totalSizeCap" value="10GB" />
+
+       <!-- log file names -->
+       <property name="errorLogName" value="error" />
+       <property name="metricsLogName" value="metrics" />
+       <property name="auditLogName" value="audit" />
+       <property name="debugLogName" value="debug" />
+       <property name="cadiLogName" value="cadi" />
+       
+       <property name="currentTimeStamp" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX",UTC}"/>
+
+       <property name="errorPattern"
+               value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
+
+       <property name="debugPattern"
+               value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%logger{50} - %msg%n" />
+
+       <property name="auditPattern"
+               value="%X{EntryTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}||||%marker|%mdc|||%msg%n" />
+
+       <property name="metricPattern"
+               value="%X{InvokeTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|%marker|%mdc|||%msg%n" />
+
+       <property name="defaultPattern"
+               value="%nopexception%logger
+                \t%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}
+                \t%level
+                \t%replace(%replace(%message){'\t','\\\\t'}){'\n','\\\\n'}
+                \t%replace(%replace(%mdc){'\t','\\\\t'}){'\n','\\\\n'}
+                \t%replace(%replace(%rootException){'\t','\\\\t'}){'\n','\\\\n'}
+                \t%replace(%replace(%marker){'\t','\\\\t'}){'\n','\\\\n'}
+                \t%thread
+                \t%n" />
+
+       <appender name="Audit"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+                       <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">                             
+                               <marker>EXIT</marker>
+                       </evaluator>
+                       <onMismatch>DENY</onMismatch>
+                       <onMatch>ACCEPT</onMatch>
+               </filter>
+               <file>${logs_dir:-.}/${auditLogName}.log</file>
+               <rollingPolicy
+                       class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+                       <fileNamePattern>${logs_dir:-.}/${auditLogName}.%d{yyyy-MM-dd}.%i.log.zip
+                       </fileNamePattern>
+                       <maxFileSize>${maxFileSize}</maxFileSize>
+                       <maxHistory>${maxHistory}</maxHistory>
+                       <totalSizeCap>${totalSizeCap}</totalSizeCap>
+               </rollingPolicy>
+               <encoder>
+                       <pattern>${auditPattern}</pattern>
+               </encoder>
+       </appender>
+
+       <appender name="asyncAudit" class="ch.qos.logback.classic.AsyncAppender">
+               <queueSize>256</queueSize>
+               <appender-ref ref="Audit" />
+       </appender>
+
+       <appender name="Metric"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+                       <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">                             
+                               <marker>INVOKE-RETURN</marker>
+                       </evaluator>
+                       <onMismatch>DENY</onMismatch>
+                       <onMatch>ACCEPT</onMatch>
+               </filter>
+               <file>${logs_dir:-.}/${metricsLogName}.log</file>
+               <rollingPolicy
+                       class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+                       <fileNamePattern>${logs_dir:-.}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log.zip
+                       </fileNamePattern>
+                       <maxFileSize>${maxFileSize}</maxFileSize>
+                       <maxHistory>${maxHistory}</maxHistory>
+                       <totalSizeCap>${totalSizeCap}</totalSizeCap>
+               </rollingPolicy>
+               <encoder>
+                       <pattern>${metricPattern}</pattern>
+               </encoder>
+       </appender>
+
+
+       <appender name="asyncMetric" class="ch.qos.logback.classic.AsyncAppender">
+               <queueSize>256</queueSize>
+               <appender-ref ref="Metric" />
+       </appender>
+
+       <appender name="Error"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <filter class="ch.qos.logback.classic.filter.LevelFilter">
+                       <level>ERROR</level>
+                       <onMatch>ACCEPT</onMatch>
+                       <onMismatch>DENY</onMismatch>
+               </filter>
+               <file>${logs_dir:-.}/${errorLogName}.log</file>
+               <rollingPolicy
+                       class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+                       <fileNamePattern>${logs_dir:-.}/${errorLogName}.%d{yyyy-MM-dd}.%i.log.zip
+                       </fileNamePattern>
+                       <maxFileSize>${maxFileSize}</maxFileSize>
+                       <maxHistory>${maxHistory}</maxHistory>
+                       <totalSizeCap>${totalSizeCap}</totalSizeCap>
+               </rollingPolicy>
+               <encoder>
+                       <pattern>${errorPattern}</pattern>
+               </encoder>
+       </appender>
+
+       <appender name="asyncError" class="ch.qos.logback.classic.AsyncAppender">
+               <queueSize>256</queueSize>
+               <appender-ref ref="Error" />
+       </appender>
+
+       <appender name="Debug"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
+                       <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+                               <marker>INVOKE</marker>
+                               <marker>INVOKE-RETURN</marker>
+                               <marker>ENTRY</marker>
+                               <marker>EXIT</marker>
+                       </evaluator>
+                       <onMismatch>ACCEPT</onMismatch>
+                       <onMatch>DENY</onMatch>
+               </filter>
+               <file>${logs_dir:-.}/${debugLogName}.log</file>
+               <rollingPolicy
+                       class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+                       <fileNamePattern>${logs_dir:-.}/${debugLogName}.%d{yyyy-MM-dd}.%i.log.zip
+                       </fileNamePattern>
+                       <maxFileSize>${maxFileSize}</maxFileSize>
+                       <maxHistory>${maxHistory}</maxHistory>
+                       <totalSizeCap>${totalSizeCap}</totalSizeCap>
+               </rollingPolicy>
+               <encoder>
+                       <pattern>${debugPattern}</pattern>
+               </encoder>
+       </appender>
+
+       <appender name="asyncDebug" class="ch.qos.logback.classic.AsyncAppender">
+               <queueSize>256</queueSize>
+               <appender-ref ref="Debug" />
+               <includeCallerData>true</includeCallerData>
+       </appender>
+       
+       <appender name="Cadi"
+               class="ch.qos.logback.core.rolling.RollingFileAppender">
+               <file>${logs_dir:-.}/${cadiLogName}.log</file>
+               <rollingPolicy
+                       class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+                       <fileNamePattern>${logs_dir:-.}/${cadiLogName}.%d{yyyy-MM-dd}.%i.log.zip
+                       </fileNamePattern>
+                       <maxFileSize>${maxFileSize}</maxFileSize>
+                       <maxHistory>${maxHistory}</maxHistory>
+                       <totalSizeCap>${totalSizeCap}</totalSizeCap>
+               </rollingPolicy>
+               <encoder>
+                       <pattern>${debugPattern}</pattern>
+               </encoder>
+       </appender>
+
+       <appender name="asyncCadi" class="ch.qos.logback.classic.AsyncAppender">
+               <queueSize>256</queueSize>
+               <appender-ref ref="Cadi" />
+               <includeCallerData>true</includeCallerData>
+       </appender>
+
+       <!-- Spring related loggers -->
+       <logger name="org.springframework" level="WARN" />
+       <logger
+               name="org.springframework.security.authentication.dao.DaoAuthenticationProvider"
+               level="DEBUG" />
+
+       <!-- Camunda related loggers -->
+       <logger name="org.camunda.bpm.engine.jobexecutor.level" level="DEBUG" />
+       <logger
+               name="org.camunda.bpm.engine.impl.persistence.entity.JobEntity.level"
+               level="DEBUG" />
+
+       <logger name="org.flywaydb" level="DEBUG"/>
+       <logger name="org.apache.wire" level="DEBUG" />
+       <logger name="org.onap" level="DEBUG" />
+       <logger name="org.apache.cxf.interceptor" level="DEBUG" />
+       <logger name="com.woorea.openstack.connector" level="DEBUG" />
+       
+       <!-- AAF Logs go here-->
+       <logger name="org.apache.catalina.core.ContainerBase" level="INFO" additivity="false">
+               <appender-ref ref="asyncCadi" />
+       </logger>
+       
+       <logger name="org.reflections.Reflections" level="ERROR" additivity="false">
+               <appender-ref ref="asyncCadi" />
+       </logger>
+
+       <logger name="AUDIT" level="INFO" additivity="false">
+               <appender-ref ref="asyncAudit" />
+       </logger>
+
+       <logger name="METRIC" level="INFO" additivity="false">
+               <appender-ref ref="asyncMetric" />
+       </logger>
+
+       <root level="INFO">
+               <appender-ref ref="asyncDebug" />
+               <appender-ref ref="asyncError" />
+               <appender-ref ref="asyncAudit" />
+               <appender-ref ref="asyncMetric" />
+       </root>
+
+</configuration>
 
 package org.onap.so.apihandlerinfra;
 
 import java.util.concurrent.Executor;
-import org.onap.so.logging.jaxrs.filter.MDCTaskDecorator;
+import org.onap.logging.filter.spring.MDCTaskDecorator;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 
 import javax.ws.rs.core.Context;
 import org.glassfish.jersey.server.ResourceConfig;
 import org.glassfish.jersey.servlet.ServletProperties;
+import org.onap.logging.filter.base.Constants;
 import org.onap.so.apihandler.filters.RequestIdFilter;
 import org.onap.so.apihandlerinfra.exceptions.ApiExceptionMapper;
 import org.onap.so.apihandlerinfra.infra.rest.Network;
 import org.onap.so.apihandlerinfra.tenantisolation.CloudOrchestration;
 import org.onap.so.apihandlerinfra.tenantisolation.CloudResourcesOrchestration;
 import org.onap.so.apihandlerinfra.tenantisolation.ModelDistributionRequest;
-import org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging;
+import org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter;
 import org.onap.so.web.exceptions.RuntimeExceptionMapper;
 import org.springframework.context.annotation.Configuration;
 import io.swagger.v3.jaxrs2.integration.JaxrsOpenApiContextBuilder;
 
     @PostConstruct
     public void setUp() {
+        System.setProperty(Constants.Property.PARTNER_NAME, "SO.APIH");
         register(GlobalHealthcheckHandler.class);
         register(NodeHealthcheckHandler.class);
         register(ServiceInstances.class);
         register(Network.class);
         register(Volumes.class);
         register(ServiceInstance.class);
-        register(JaxRsFilterLogging.class);
+        register(SOAuditLogContainerFilter.class);
         register(ManualTasks.class);
         register(TasksHandler.class);
         register(OpenApiResource.class);
 
 import org.onap.so.logger.ErrorCode;
 import org.onap.so.logger.MessageEnum;
 import org.onap.so.utils.CryptoUtils;
-import org.onap.so.utils.TargetEntity;
+import org.onap.logging.filter.base.ONAPComponents;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Value;
 
             URL url = new URL(urlString);
 
-            HttpClient httpClient = httpClientFactory.newJsonClient(url, TargetEntity.SDC);
+            HttpClient httpClient = httpClientFactory.newJsonClient(url, ONAPComponents.SDC);
             httpClient.addBasicAuthHeader(sdcClientAuth, msoKey);
             httpClient.addAdditionalHeader("X-ECOMP-InstanceID", sdcActivateInstanceId);
             httpClient.addAdditionalHeader("X-ECOMP-RequestID", UUID.randomUUID().toString());
 
 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
-import static org.onap.so.logger.HttpHeadersConstants.ONAP_REQUEST_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.ONAP_REQUEST_ID;
 import static org.onap.so.logger.HttpHeadersConstants.REQUESTOR_ID;
-import static org.onap.so.logger.MdcConstants.CLIENT_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.CLIENT_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.TRANSACTION_ID;
 import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
         // set headers
         headers = new HttpHeaders();
         headers.set(ONAPLogConstants.Headers.PARTNER_NAME, "test_name");
-        headers.set(HttpHeadersConstants.TRANSACTION_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
+        headers.set(TRANSACTION_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(ONAP_REQUEST_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(ONAPLogConstants.MDCs.REQUEST_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(CLIENT_ID, "VID");
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
-import static org.onap.so.logger.MdcConstants.ECOMP_REQUEST_ID;
-import static org.onap.so.logger.MdcConstants.ENDTIME;
-import static org.onap.so.logger.MdcConstants.INVOCATION_ID;
-import static org.onap.so.logger.MdcConstants.PARTNERNAME;
-import static org.onap.so.logger.MdcConstants.RESPONSECODE;
-import static org.onap.so.logger.MdcConstants.RESPONSEDESC;
-import static org.onap.so.logger.MdcConstants.SERVICE_NAME;
-import static org.onap.so.logger.MdcConstants.STATUSCODE;
-import static org.onap.so.logger.MdcConstants.CLIENT_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.ECOMP_REQUEST_ID;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.INVOCATION_ID;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.PARTNER_NAME;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.RESPONSE_CODE;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.LOG_TIMESTAMP;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.SERVICE_NAME;
+import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.CLIENT_ID;
 import java.io.IOException;
 import java.util.Map;
 import javax.ws.rs.core.MediaType;
         assertThat(realResponse, sameBeanAs(expectedResponse));
 
         for (ILoggingEvent logEvent : TestAppender.events)
-            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging")
+            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter")
                     && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("ENTRY")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(INVOCATION_ID));
-                assertEquals("UNKNOWN", mdc.get(PARTNERNAME));
+                assertEquals("UNKNOWN", mdc.get(PARTNER_NAME));
                 assertEquals("tasks/v1/55/complete", mdc.get(SERVICE_NAME));
-                assertEquals("INPROGRESS", mdc.get(STATUSCODE));
-            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging")
+                assertEquals("INPROGRESS", mdc.get(RESPONSE_STATUS_CODE));
+            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter")
                     && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("EXIT")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
-                assertNotNull(mdc.get(ENDTIME));
+                assertNotNull(mdc.get(LOG_TIMESTAMP));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
                 assertNotNull(mdc.get(INVOCATION_ID));
-                assertEquals("202", mdc.get(RESPONSECODE));
-                assertEquals("UNKNOWN", mdc.get(PARTNERNAME));
+                assertEquals("202", mdc.get(RESPONSE_CODE));
+                assertEquals("UNKNOWN", mdc.get(PARTNER_NAME));
                 assertEquals("tasks/v1/55/complete", mdc.get(SERVICE_NAME));
-                assertEquals("COMPLETE", mdc.get(STATUSCODE));
-                assertNotNull(mdc.get(RESPONSEDESC));
+                assertEquals("COMPLETE", mdc.get(RESPONSE_STATUS_CODE));
+                assertNotNull(mdc.get(RESPONSE_DESCRIPTION));
                 assertEquals("application/json", response.getHeaders().get(HttpHeaders.CONTENT_TYPE).get(0));
                 assertEquals("0", response.getHeaders().get("X-MinorVersion").get(0));
                 assertEquals("0", response.getHeaders().get("X-PatchVersion").get(0));
 
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
-import static org.onap.so.logger.HttpHeadersConstants.ONAP_REQUEST_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.ONAP_REQUEST_ID;
 import static org.onap.so.logger.HttpHeadersConstants.REQUESTOR_ID;
-import static org.onap.so.logger.MdcConstants.CLIENT_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.CLIENT_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.TRANSACTION_ID;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
         // set headers
         headers = new HttpHeaders();
         headers.set(ONAPLogConstants.Headers.PARTNER_NAME, "test_name");
-        headers.set(HttpHeadersConstants.TRANSACTION_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
+        headers.set(TRANSACTION_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(ONAP_REQUEST_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(ONAPLogConstants.MDCs.REQUEST_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(CLIENT_ID, "VID");
 
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
-import static org.onap.so.logger.HttpHeadersConstants.ONAP_REQUEST_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.ONAP_REQUEST_ID;
 import static org.onap.so.logger.HttpHeadersConstants.REQUESTOR_ID;
-import static org.onap.so.logger.HttpHeadersConstants.TRANSACTION_ID;
-import static org.onap.so.logger.MdcConstants.CLIENT_ID;
-import static org.onap.so.logger.MdcConstants.ENDTIME;
-import static org.onap.so.logger.MdcConstants.INVOCATION_ID;
-import static org.onap.so.logger.MdcConstants.PARTNERNAME;
-import static org.onap.so.logger.MdcConstants.RESPONSECODE;
-import static org.onap.so.logger.MdcConstants.RESPONSEDESC;
-import static org.onap.so.logger.MdcConstants.SERVICE_NAME;
-import static org.onap.so.logger.MdcConstants.STATUSCODE;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.TRANSACTION_ID;
+import static org.onap.logging.filter.base.Constants.HttpHeaders.CLIENT_ID;
 import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import org.onap.so.db.catalog.beans.Service;
 import org.onap.so.db.catalog.beans.ServiceRecipe;
 import org.onap.so.db.request.beans.InfraActiveRequests;
-import org.onap.so.logger.HttpHeadersConstants;
 import org.onap.so.serviceinstancebeans.CloudConfiguration;
 import org.onap.so.serviceinstancebeans.ModelInfo;
 import org.onap.so.serviceinstancebeans.ModelType;
         // set headers
         headers = new HttpHeaders();
         headers.set(ONAPLogConstants.Headers.PARTNER_NAME, "test_name");
-        headers.set(HttpHeadersConstants.TRANSACTION_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
+        headers.set(TRANSACTION_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(ONAP_REQUEST_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(ONAPLogConstants.MDCs.REQUEST_ID, "32807a28-1a14-4b88-b7b3-2950918aa76d");
         headers.set(CLIENT_ID, "VID");
 
 
         for (ILoggingEvent logEvent : TestAppender.events)
-            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging")
+            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter")
                     && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("ENTRY")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
-                assertNotNull(mdc.get(INVOCATION_ID));
-                assertEquals("UNKNOWN", mdc.get(PARTNERNAME));
-                assertEquals("onap/so/infra/serviceInstantiation/v5/serviceInstances", mdc.get(SERVICE_NAME));
-                assertEquals("INPROGRESS", mdc.get(STATUSCODE));
-            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.jersey.JaxRsFilterLogging")
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.INVOCATION_ID));
+                assertEquals("UNKNOWN", mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+                assertEquals("onap/so/infra/serviceInstantiation/v5/serviceInstances",
+                        mdc.get(ONAPLogConstants.MDCs.SERVICE_NAME));
+                assertEquals("INPROGRESS", mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter")
                     && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("EXIT")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.ENTRY_TIMESTAMP));
-                assertNotNull(mdc.get(ENDTIME));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.LOG_TIMESTAMP));
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
-                assertNotNull(mdc.get(INVOCATION_ID));
-                assertEquals("202", mdc.get(RESPONSECODE));
-                assertEquals("UNKNOWN", mdc.get(PARTNERNAME));
-                assertEquals("onap/so/infra/serviceInstantiation/v5/serviceInstances", mdc.get(SERVICE_NAME));
-                assertEquals("COMPLETE", mdc.get(STATUSCODE));
-                assertNotNull(mdc.get(RESPONSEDESC));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.INVOCATION_ID));
+                assertEquals("202", mdc.get(ONAPLogConstants.MDCs.RESPONSE_CODE));
+                assertEquals("UNKNOWN", mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
+                assertEquals("onap/so/infra/serviceInstantiation/v5/serviceInstances",
+                        mdc.get(ONAPLogConstants.MDCs.SERVICE_NAME));
+                assertEquals("COMPLETE", mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION));
                 assertEquals("0", response.getHeaders().get("X-MinorVersion").get(0));
                 assertEquals("0", response.getHeaders().get("X-PatchVersion").get(0));
                 assertEquals("5.0.0", response.getHeaders().get("X-LatestVersion").get(0));
                                 .withStatus(HttpStatus.SC_NOT_FOUND)));
 
         assertEquals(Response.Status.NOT_FOUND.getStatusCode(), response.getStatusCode().value());
+
+        for (ILoggingEvent logEvent : TestAppender.events) {
+            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.SOAuditLogContainerFilter")
+                    && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("ENTRY")) {
+                Map<String, String> mdc = logEvent.getMDCPropertyMap();
+                assertEquals("32807a28-1a14-4b88-b7b3-2950918aa76d", mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
+                assertNotNull(mdc.get("PartnerName"));
+            }
+        }
     }
 
     @Test
         assertEquals(response.getHeaders().get(TRANSACTION_ID).get(0), "32807a28-1a14-4b88-b7b3-2950918aa76d");
 
         for (ILoggingEvent logEvent : TestAppender.events) {
-            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging")
+            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter")
                     && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("ENTRY")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertEquals("32807a28-1a14-4b88-b7b3-2950918aa76d", mdc.get(ONAPLogConstants.MDCs.REQUEST_ID));
-                assertEquals("VID", mdc.get(PARTNERNAME));
+                assertEquals("VID", mdc.get(ONAPLogConstants.MDCs.PARTNER_NAME));
             }
         }
     }
 
         boolean foundInvoke = false;
         boolean foundInvokeReturn = false;
         for (ILoggingEvent logEvent : TestAppender.events)
-            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.JaxRsClientLogging")
+            if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOMetricLogClientFilter")
                     && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("INVOKE")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.INVOCATION_ID));
                 assertEquals("GRM", mdc.get("TargetEntity"));
                 assertEquals("INPROGRESS", mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
                 foundInvoke = true;
-            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.JaxRsClientLogging")
-                    && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("INVOKE_RETURN")) {
+            } else if (logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.SOMetricLogClientFilter")
+                    && logEvent.getMarker() != null && logEvent.getMarker().getName().equals("INVOKE-RETURN")) {
                 Map<String, String> mdc = logEvent.getMDCPropertyMap();
                 assertNotNull(mdc.get(ONAPLogConstants.MDCs.INVOCATION_ID));
                 assertEquals("200", mdc.get(ONAPLogConstants.MDCs.RESPONSE_CODE));
 
 import org.onap.so.db.request.beans.WatchdogDistributionStatus;
 import org.onap.so.db.request.beans.WatchdogServiceModVerIdLookup;
 import org.onap.so.db.request.data.controller.InstanceNameDuplicateCheckRequest;
-import org.onap.so.logging.jaxrs.filter.SpringClientFilter;
+import org.onap.so.logging.jaxrs.filter.SOSpringClientFilter;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Primary;
 
         return Configuration.builder().setBaseUri(baseUri).setClientHttpRequestFactory(factory)
                 .setRestTemplateConfigurer(restTemplate -> {
-                    restTemplate.getInterceptors().add((new SpringClientFilter()));
+                    restTemplate.getInterceptors().add((new SOSpringClientFilter()));
 
                     restTemplate.getInterceptors().add((request, body, execution) -> {
 
 
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.UriBuilder;
 import org.apache.http.HttpStatus;
+import org.onap.logging.filter.base.Constants;
 import org.onap.so.db.catalog.beans.BuildingBlockDetail;
 import org.onap.so.db.catalog.beans.CloudSite;
 import org.onap.so.db.catalog.beans.CloudifyManager;
 import org.onap.so.db.catalog.beans.macro.OrchestrationFlow;
 import org.onap.so.db.catalog.beans.macro.RainyDayHandlerStatus;
 import org.onap.so.logger.LogConstants;
-import org.onap.so.logging.jaxrs.filter.SpringClientFilter;
+import org.onap.so.logging.jaxrs.filter.SOSpringClientFilter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 
         ClientFactory clientFactory =
                 Configuration.builder().setClientHttpRequestFactory(factory).setRestTemplateConfigurer(restTemplate -> {
-                    restTemplate.getInterceptors().add((new SpringClientFilter()));
+                    restTemplate.getInterceptors().add((new SOSpringClientFilter()));
 
                     restTemplate.getInterceptors().add((request, body, execution) -> {
 
                         request.getHeaders().add(HttpHeaders.AUTHORIZATION, msoAdaptersAuth);
-                        request.getHeaders().add(LogConstants.TARGET_ENTITY_HEADER, TARGET_ENTITY);
+                        request.getHeaders().add(Constants.HttpHeaders.TARGET_ENTITY_HEADER, TARGET_ENTITY);
                         return execution.execute(request, body);
                     });
                 }).build().buildClientFactory();
 
         ClientFactory clientFactory = Configuration.builder().setBaseUri(baseUri).setClientHttpRequestFactory(factory)
                 .setRestTemplateConfigurer(restTemplate -> {
-                    restTemplate.getInterceptors().add((new SpringClientFilter()));
+                    restTemplate.getInterceptors().add((new SOSpringClientFilter()));
 
                     restTemplate.getInterceptors().add((request, body, execution) -> {
 
                         request.getHeaders().add(HttpHeaders.AUTHORIZATION, auth);
-                        request.getHeaders().add(LogConstants.TARGET_ENTITY_HEADER, TARGET_ENTITY);
+                        request.getHeaders().add(Constants.HttpHeaders.TARGET_ENTITY_HEADER, TARGET_ENTITY);
                         return execution.execute(request, body);
                     });
                 }).build().buildClientFactory();
         headers.set(HttpHeaders.AUTHORIZATION, msoAdaptersAuth);
         headers.set(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
         headers.set(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON);
-        headers.set(LogConstants.TARGET_ENTITY_HEADER, TARGET_ENTITY);
+        headers.set(Constants.HttpHeaders.TARGET_ENTITY_HEADER, TARGET_ENTITY);
         return headers;
     }
 
 
-<!-- ============LICENSE_START=======================================================
-    ECOMP MSO ================================================================================
-    Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. ================================================================================
-    Licensed under the Apache License, Version 2.0 (the "License"); you may not
-    use this file except in compliance with the License. You may obtain a copy
-    of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required
-    by applicable law or agreed to in writing, software distributed under the
-    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
-    OF ANY KIND, either express or implied. See the License for the specific
+<!-- ============LICENSE_START======================================================= 
+    ECOMP MSO ================================================================================ 
+    Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. ================================================================================ 
+    Licensed under the Apache License, Version 2.0 (the "License"); you may not 
+    use this file except in compliance with the License. You may obtain a copy 
+    of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required 
+    by applicable law or agreed to in writing, software distributed under the 
+    License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 
+    OF ANY KIND, either express or implied. See the License for the specific 
     language governing permissions and limitations under the License. ============LICENSE_END========================================================= -->
 
 <configuration scan="true" debug="false">
        <property name="metricsLogName" value="metrics" />
        <property name="auditLogName" value="audit" />
        <property name="debugLogName" value="debug" />
-
+       
        <property name="currentTimeStamp" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX",UTC}"/>
 
        <property name="errorPattern"
                value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode:-500}|%X{ErrorDesc}|%msg%n" />
 
        <property name="debugPattern"
-               value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}| %logger{50} - %msg%n" />
+               value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%logger{50} - %msg%n" />
 
        <property name="auditPattern"
-               value="%X{EntryTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" />
+               value="%X{EntryTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}||||%marker|%mdc|||%msg%n" />
 
        <property name="metricPattern"
-               value="%X{InvokeTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" />
+               value="%X{InvokeTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|%marker|%mdc|||%msg%n" />
 
        <property name="defaultPattern"
                value="%nopexception%logger
        <appender name="Audit"
                class="ch.qos.logback.core.rolling.RollingFileAppender">
                <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-                       <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
+                       <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">                             
                                <marker>EXIT</marker>
                        </evaluator>
                        <onMismatch>DENY</onMismatch>
        <appender name="Metric"
                class="ch.qos.logback.core.rolling.RollingFileAppender">
                <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
-                       <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
-                               <marker>INVOKE_RETURN</marker>
+                       <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">                             
+                               <marker>INVOKE-RETURN</marker>
                        </evaluator>
                        <onMismatch>DENY</onMismatch>
                        <onMatch>ACCEPT</onMatch>
                <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
                        <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
                                <marker>INVOKE</marker>
-                               <marker>INVOKE_RETURN</marker>
+                               <marker>INVOKE-RETURN</marker>
                                <marker>ENTRY</marker>
                                <marker>EXIT</marker>
                        </evaluator>
        <logger name="org.onap" level="DEBUG" />
        <logger name="com.att.ecomp" level="DEBUG" />
        <logger name="org.apache.cxf.interceptor" level="DEBUG" />
+       <logger name="com.att.commons" level="DEBUG" />
 
        <logger name="AUDIT" level="INFO" additivity="false">
                <appender-ref ref="asyncAudit" />
 
   <!-- *********************************************************************************************************** -->
   <!-- Dependencies -->
   <dependencies>
+       <dependency>
+               <groupId>org.onap.logging-analytics</groupId>
+               <artifactId>logging-slf4j</artifactId>
+               <version>1.5.0-SNAPSHOT</version>
+       </dependency>
+    <dependency>
+      <groupId>org.onap.logging-analytics</groupId>
+      <artifactId>logging-filter-base</artifactId>
+      <version>1.5.0-SNAPSHOT</version>
+    </dependency>
+    <dependency>
+      <groupId>org.onap.logging-analytics</groupId>
+      <artifactId>logging-filter-spring</artifactId>
+      <version>1.5.0-SNAPSHOT</version>
+    </dependency>
     <dependency>
       <groupId>com.fasterxml.jackson.core</groupId>
       <artifactId>jackson-core</artifactId>