Client Logging

Update Client Logging to use interceptor
Move CXF to own project due to dependency hell

Issue-ID: SO-947

Change-Id: I2597ff6d32231b8625b04ef63ab5e8f589e2545c
Signed-off-by: Smokowski, Steve (ss835w) <ss835w@us.att.com>
diff --git a/adapters/mso-openstack-adapters/pom.xml b/adapters/mso-openstack-adapters/pom.xml
index 01c1df3..fb104fc 100644
--- a/adapters/mso-openstack-adapters/pom.xml
+++ b/adapters/mso-openstack-adapters/pom.xml
@@ -272,5 +272,10 @@
 			<groupId>org.flywaydb</groupId>
 			<artifactId>flyway-core</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>org.onap.so</groupId>
+			<artifactId>cxf-logging</artifactId>
+			<version>${project.version}</version>
+		</dependency>
 	</dependencies>
 </project>
diff --git a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/CXFConfiguration.java b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/CXFConfiguration.java
index 2b21381..996e2c2 100644
--- a/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/CXFConfiguration.java
+++ b/adapters/mso-openstack-adapters/src/main/java/org/onap/so/adapters/openstack/CXFConfiguration.java
@@ -86,13 +86,7 @@
 	private MsoVnfCloudifyAdapterImpl vnfCloudifyAdapterImpl;
 	@Autowired
 	private JettisonStyleMapperProvider jettisonStyleObjectMapper; 	
-	
-	@Autowired
-	private SOAPLoggingInInterceptor soapInInterceptor;
-	    
-	@Autowired
-	private SOAPLoggingOutInterceptor soapOutInterceptor;
-	
+
     @Bean(name=Bus.DEFAULT_BUS_ID)
     public SpringBus springBus() {      
         return new SpringBus();
@@ -114,9 +108,9 @@
         EndpointImpl endpoint = new EndpointImpl(springBus(), networkAdapterImpl);
         endpoint.publish("/NetworkAdapter");
         endpoint.setWsdlLocation("NetworkAdapter.wsdl");
-        endpoint.getInInterceptors().add(soapInInterceptor);
-        endpoint.getOutInterceptors().add(soapOutInterceptor);
-        endpoint.getOutFaultInterceptors().add(soapOutInterceptor);
+        endpoint.getInInterceptors().add(new SOAPLoggingInInterceptor());
+        endpoint.getOutInterceptors().add(new SOAPLoggingOutInterceptor());
+        endpoint.getOutFaultInterceptors().add(new SOAPLoggingOutInterceptor());
         return endpoint;
     }	
 	
@@ -125,9 +119,9 @@
         EndpointImpl endpoint = new EndpointImpl(springBus(), networkAdapterAsyncImpl);
         endpoint.publish("/NetworkAdapterAsync");
         endpoint.setWsdlLocation("NetworkAdapterAsync.wsdl");
-        endpoint.getInInterceptors().add(soapInInterceptor);
-        endpoint.getOutInterceptors().add(soapOutInterceptor);
-        endpoint.getOutFaultInterceptors().add(soapOutInterceptor);
+        endpoint.getInInterceptors().add(new SOAPLoggingInInterceptor());
+        endpoint.getOutInterceptors().add(new SOAPLoggingOutInterceptor());
+        endpoint.getOutFaultInterceptors().add(new SOAPLoggingOutInterceptor());
         return endpoint;
     }		
 	
@@ -139,9 +133,9 @@
         EndpointImpl endpoint = new EndpointImpl(springBus(), tenantAdapterImpl);
         endpoint.publish("/TenantAdapter");
         endpoint.setWsdlLocation("TenantAdapter.wsdl");
-        endpoint.getInInterceptors().add(soapInInterceptor);
-        endpoint.getOutInterceptors().add(soapOutInterceptor);
-        endpoint.getOutFaultInterceptors().add(soapOutInterceptor);
+        endpoint.getInInterceptors().add(new SOAPLoggingInInterceptor());
+        endpoint.getOutInterceptors().add(new SOAPLoggingOutInterceptor());
+        endpoint.getOutFaultInterceptors().add(new SOAPLoggingOutInterceptor());
         return endpoint;
     }
     
@@ -155,9 +149,9 @@
         EndpointImpl endpoint = new EndpointImpl(springBus(), vnfAdapterImpl);
         endpoint.publish("/VnfAdapter");
         endpoint.setWsdlLocation("VnfAdapter.wsdl");
-        endpoint.getInInterceptors().add(soapInInterceptor);
-        endpoint.getOutInterceptors().add(soapOutInterceptor);
-        endpoint.getOutFaultInterceptors().add(soapOutInterceptor);
+        endpoint.getInInterceptors().add(new SOAPLoggingInInterceptor());
+        endpoint.getOutInterceptors().add(new SOAPLoggingOutInterceptor());
+        endpoint.getOutFaultInterceptors().add(new SOAPLoggingOutInterceptor());
         return endpoint;
     }
     
@@ -166,9 +160,9 @@
         EndpointImpl endpoint = new EndpointImpl(springBus(), vnfAdapterAsyncImpl);
         endpoint.publish("/VnfAsyncAdapter");
         endpoint.setWsdlLocation("VnfAsyncAdapter.wsdl");
-        endpoint.getInInterceptors().add(soapInInterceptor);
-        endpoint.getOutInterceptors().add(soapOutInterceptor);
-        endpoint.getOutFaultInterceptors().add(soapOutInterceptor);
+        endpoint.getInInterceptors().add(new SOAPLoggingInInterceptor());
+        endpoint.getOutInterceptors().add(new SOAPLoggingOutInterceptor());
+        endpoint.getOutFaultInterceptors().add(new SOAPLoggingOutInterceptor());
         return endpoint;
     }
     
@@ -177,9 +171,9 @@
         EndpointImpl endpoint = new EndpointImpl(springBus(), vnfCloudifyAdapterImpl);
         endpoint.publish("/VnfCloudifyAdapterImpl");
         endpoint.setWsdlLocation("VnfCloudifyAdapterImpl.wsdl");
-        endpoint.getInInterceptors().add(soapInInterceptor);
-        endpoint.getOutInterceptors().add(soapOutInterceptor);
-        endpoint.getOutFaultInterceptors().add(soapOutInterceptor);
+        endpoint.getInInterceptors().add(new SOAPLoggingInInterceptor());
+        endpoint.getOutInterceptors().add(new SOAPLoggingOutInterceptor());
+        endpoint.getOutFaultInterceptors().add(new SOAPLoggingOutInterceptor());
         return endpoint;
     }
     
diff --git a/adapters/mso-requests-db-adapter/pom.xml b/adapters/mso-requests-db-adapter/pom.xml
index 934e2a5..955a4d8 100644
--- a/adapters/mso-requests-db-adapter/pom.xml
+++ b/adapters/mso-requests-db-adapter/pom.xml
@@ -72,11 +72,6 @@
 			<optional>true</optional>
 		</dependency>
 		<dependency>
-			<groupId>janino</groupId>
-			<artifactId>janino</artifactId>
-			<version>2.5.15</version>
-		</dependency>
-		<dependency>
 			<groupId>ch.vorburger.mariaDB4j</groupId>
 			<artifactId>mariaDB4j</artifactId>
 			<version>2.2.3</version>
@@ -110,6 +105,11 @@
 			<artifactId>micrometer-registry-prometheus</artifactId>
 			<version>1.0.5</version>
 		</dependency>
+		<dependency>
+			<groupId>org.onap.so</groupId>
+			<artifactId>cxf-logging</artifactId>
+			<version>${project.version}</version>
+		</dependency>
 	</dependencies>
 
 	<build>
diff --git a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/CXFConfiguration.java b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/CXFConfiguration.java
index 0404c10..23a769b 100644
--- a/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/CXFConfiguration.java
+++ b/adapters/mso-requests-db-adapter/src/main/java/org/onap/so/adapters/requestsdb/application/CXFConfiguration.java
@@ -45,12 +45,6 @@
 	@Autowired
 	private MsoRequestsDbAdapter requestDbAdapterImpl;
 	
-	@Autowired
-	private SOAPLoggingInInterceptor soapInInterceptor;
-	
-	@Autowired
-	private SOAPLoggingOutInterceptor soapOutInterceptor;
-	
 	@Bean
 	public ServletRegistrationBean cxfServlet() {
 	
@@ -65,9 +59,9 @@
 		logFeature.setPrettyLogging(true);
 		logFeature.initialize(bus);
 		endpoint.getFeatures().add(logFeature);
-		endpoint.getInInterceptors().add(soapInInterceptor);
-		endpoint.getOutInterceptors().add(soapOutInterceptor);
-		endpoint.getOutFaultInterceptors().add(soapOutInterceptor);
+		endpoint.getInInterceptors().add(new SOAPLoggingInInterceptor());
+		endpoint.getOutInterceptors().add(new SOAPLoggingOutInterceptor());
+		endpoint.getOutFaultInterceptors().add(new SOAPLoggingOutInterceptor());
 		return endpoint;
 	}
 
diff --git a/adapters/mso-requests-db-adapter/src/test/java/org/onap/so/adapters/requestsdb/adapters/HealthCheckHandlerTest.java b/adapters/mso-requests-db-adapter/src/test/java/org/onap/so/adapters/requestsdb/adapters/HealthCheckHandlerTest.java
index 159eb01..4e00ced 100644
--- a/adapters/mso-requests-db-adapter/src/test/java/org/onap/so/adapters/requestsdb/adapters/HealthCheckHandlerTest.java
+++ b/adapters/mso-requests-db-adapter/src/test/java/org/onap/so/adapters/requestsdb/adapters/HealthCheckHandlerTest.java
@@ -58,7 +58,7 @@
 	
 	@Test
 	public void testHealthcheck() throws JSONException {
-
+	    TestAppender.events.clear();
 		HttpEntity<String> entity = new HttpEntity<String>(null, headers);
 
 		ResponseEntity<String> response = restTemplate.exchange(
@@ -87,6 +87,7 @@
                 assertEquals("/manage/health",mdc.get(ONAPLogConstants.MDCs.SERVICE_NAME));
                 assertEquals("COMPLETED",mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
             }
+        TestAppender.events.clear();
 	}
 	
 	private String createURLWithPort(String uri) {
diff --git a/adapters/mso-sdnc-adapter/pom.xml b/adapters/mso-sdnc-adapter/pom.xml
index 0337c26..7723ffa 100644
--- a/adapters/mso-sdnc-adapter/pom.xml
+++ b/adapters/mso-sdnc-adapter/pom.xml
@@ -150,11 +150,6 @@
 			<scope>test</scope>
 		</dependency>
 		<dependency>
-			<groupId>janino</groupId>
-			<artifactId>janino</artifactId>
-			<version>2.5.15</version>
-		</dependency>
-		<dependency>
 			<groupId>io.micrometer</groupId>
 			<artifactId>micrometer-spring-legacy</artifactId>
 			<version>1.0.5</version>
@@ -164,5 +159,10 @@
 			<artifactId>micrometer-registry-prometheus</artifactId>
 			<version>1.0.5</version>
 		</dependency>
+		<dependency>
+			<groupId>org.onap.so</groupId>
+			<artifactId>cxf-logging</artifactId>
+			<version>${project.version}</version>
+		</dependency>
 	</dependencies>
 </project>
\ No newline at end of file
diff --git a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/CXFConfiguration.java b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/CXFConfiguration.java
index f6fd8d5..766a48a 100644
--- a/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/CXFConfiguration.java
+++ b/adapters/mso-sdnc-adapter/src/main/java/org/onap/so/adapters/sdnc/CXFConfiguration.java
@@ -64,15 +64,10 @@
 	
 	@Autowired 
 	private SNIROResponse sniroResponse;
-
-	@Autowired
-	private SOAPLoggingInInterceptor soapInInterceptor;
-	    
-	@Autowired
-	private SOAPLoggingOutInterceptor soapOutInterceptor;
     
 	@Autowired
 	private ObjectMapper mapper;
+	
     @Bean
     public Server rsServer() {
         endpoint = new JAXRSServerFactoryBean();
@@ -93,9 +88,9 @@
     @Bean
     public Endpoint sndcAdapter() {
         EndpointImpl wsdlEndpoint = new EndpointImpl(bus, sdncAdapterPortImpl);
-        wsdlEndpoint.getInInterceptors().add(soapInInterceptor);
-        wsdlEndpoint.getOutInterceptors().add(soapOutInterceptor);
-        wsdlEndpoint.getOutFaultInterceptors().add(soapOutInterceptor);
+        wsdlEndpoint.getInInterceptors().add(new SOAPLoggingInInterceptor());
+        wsdlEndpoint.getOutInterceptors().add(new SOAPLoggingOutInterceptor());
+        wsdlEndpoint.getOutFaultInterceptors().add(new SOAPLoggingOutInterceptor());
         wsdlEndpoint.publish("/SDNCAdapter");
         return wsdlEndpoint;
     }
diff --git a/bpmn/mso-infrastructure-bpmn/pom.xml b/bpmn/mso-infrastructure-bpmn/pom.xml
index 151ba2c..77e2fa2 100644
--- a/bpmn/mso-infrastructure-bpmn/pom.xml
+++ b/bpmn/mso-infrastructure-bpmn/pom.xml
@@ -201,5 +201,10 @@
 			<artifactId>so-bpmn-tasks</artifactId>
 			<version>${project.version}</version>
 		</dependency>
+		<dependency>
+			<groupId>org.onap.so</groupId>
+			<artifactId>cxf-logging</artifactId>
+			<version>${project.version}</version>
+		</dependency>
 	</dependencies>
 </project>
diff --git a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/CXFConfiguration.java b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/CXFConfiguration.java
index 7721588..62be133 100644
--- a/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/CXFConfiguration.java
+++ b/bpmn/mso-infrastructure-bpmn/src/main/java/org/onap/so/bpmn/infrastructure/CXFConfiguration.java
@@ -78,12 +78,6 @@
 	@Autowired
 	private VnfAdapterNotify vnfAdapterNotifyServiceImpl;
 	
-	@Autowired
-	private SOAPLoggingInInterceptor soapInInterceptor;
-
-	@Autowired
-	private SOAPLoggingOutInterceptor soapOutInterceptor;
-	
 	@Bean
     public ServletRegistrationBean cxfServlet() {
         return new ServletRegistrationBean(new CXFServlet(), "/mso/*");
@@ -93,9 +87,9 @@
     public Endpoint vnfAdapterCallback() {
         EndpointImpl endpoint = new EndpointImpl(bus, vnfAdapterNotifyServiceImpl);
         endpoint.publish("/VNFAdaptercallback");
-        endpoint.getInInterceptors().add(soapInInterceptor);
-        endpoint.getOutInterceptors().add(soapOutInterceptor);
-        endpoint.getOutFaultInterceptors().add(soapOutInterceptor);
+        endpoint.getInInterceptors().add(new SOAPLoggingInInterceptor());
+        endpoint.getOutInterceptors().add(new SOAPLoggingOutInterceptor());
+        endpoint.getOutFaultInterceptors().add(new SOAPLoggingOutInterceptor());
         return endpoint;
     }
 	
@@ -103,9 +97,9 @@
     public Endpoint sndcAdapterCallback() {
         EndpointImpl endpoint = new EndpointImpl(bus, sdncAdapterCallbackServiceImpl);
         endpoint.publish("/SDNCAdapterCallbackService");
-        endpoint.getInInterceptors().add(soapInInterceptor);
-        endpoint.getOutInterceptors().add(soapOutInterceptor);
-        endpoint.getOutFaultInterceptors().add(soapOutInterceptor);
+        endpoint.getInInterceptors().add(new SOAPLoggingInInterceptor());
+        endpoint.getOutInterceptors().add(new SOAPLoggingOutInterceptor());
+        endpoint.getOutFaultInterceptors().add(new SOAPLoggingOutInterceptor());
         return endpoint;
     }
 		
diff --git a/common/pom.xml b/common/pom.xml
index 490f2c7..d3f460e 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -102,16 +102,7 @@
 			<groupId>org.apache.cxf</groupId>
 			<artifactId>cxf-rt-rs-client</artifactId>
 			<version>${cxf.version}</version>
-		</dependency>
-		<dependency>
-    		<groupId>org.apache.cxf</groupId>
-    		<artifactId>cxf-rt-bindings-soap</artifactId>
-  			<version>${cxf.version}</version>
-		</dependency>
-		<dependency>
-    		<groupId>org.apache.cxf</groupId>
-    		<artifactId>cxf-rt-transports-http</artifactId>
-    		<version>${cxf.version}</version>
+			<scope>test</scope>
 		</dependency>
 		<dependency>
 			<groupId>com.shazam</groupId>
@@ -148,11 +139,6 @@
 			<artifactId>slf4j-api</artifactId>
 		</dependency>
 		<dependency>
-			<groupId>janino</groupId>
-			<artifactId>janino</artifactId>
-			<version>2.5.15</version>
-		</dependency>
-		<dependency>
 			<groupId>org.springframework.boot</groupId>
 			<artifactId>spring-boot-configuration-processor</artifactId>
 			<optional>true</optional>
diff --git a/common/src/main/java/org/onap/so/client/RestClient.java b/common/src/main/java/org/onap/so/client/RestClient.java
index cb8e1f0..007c666 100644
--- a/common/src/main/java/org/onap/so/client/RestClient.java
+++ b/common/src/main/java/org/onap/so/client/RestClient.java
@@ -36,7 +36,6 @@
 import java.util.Optional;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Predicate;
-
 import javax.ws.rs.client.Client;
 import javax.ws.rs.client.ClientBuilder;
 import javax.ws.rs.client.Invocation.Builder;
@@ -46,29 +45,28 @@
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.Response.Status;
 import javax.ws.rs.core.UriBuilder;
-
 import org.onap.so.client.policy.CommonObjectMapperProvider;
-import org.onap.so.client.policy.LoggingFilter;
-import org.onap.so.logger.MsoLogger;
 import org.onap.so.logging.jaxrs.filter.JaxRsClientLogging;
+import org.onap.so.logging.jaxrs.filter.PayloadLoggingFilter;
 import org.onap.so.utils.CryptoUtils;
 import org.onap.so.utils.TargetEntity;
-import org.slf4j.MDC;
-
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
-
 import net.jodah.failsafe.Failsafe;
 import net.jodah.failsafe.RetryPolicy;
 
 
 public abstract class RestClient {
-	public static final String ECOMP_COMPONENT_NAME = "MSO";
+	private static final String APPLICATION_MERGE_PATCH_JSON = "application/merge-patch+json";
+
+    public static final String ECOMP_COMPONENT_NAME = "MSO";
 	
 	private static final int MAX_PAYLOAD_SIZE = 1024 * 1024;
 	private WebTarget webTarget;
 
 	protected final Map<String, String> headerMap;
-	protected final MsoLogger msoLogger;
+	protected final Logger logger = LoggerFactory.getLogger(RestClient.class);
 	protected URL host;
 	protected Optional<URI> path;
 	protected String accept;
@@ -79,11 +77,6 @@
 
     protected RestClient(RestProperties props, Optional<URI> path) {
 		
-		msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, RestClient.class);
-		this.requestId = MDC.get(MsoLogger.REQUEST_ID);
-		if (requestId == null) {
-			requestId = "";
-		}
 		headerMap = new HashMap<>();
 		try {
 			host = props.getEndpoint();
@@ -99,24 +92,14 @@
 		this(props, path);
 		this.accept = accept;
 		this.contentType = contentType;
-		this.requestId = MDC.get(MsoLogger.REQUEST_ID);
-		if (requestId == null) {
-			requestId = "";
-		}
 		this.props = props;
 	}
 
 	protected RestClient(URL host, String contentType) {
 		headerMap = new HashMap<>();
-	
-		msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, RestClient.class);
 		this.path = Optional.empty();
 		this.host = host;
 		this.contentType = contentType;
-		this.requestId = MDC.get(MsoLogger.REQUEST_ID);
-		if (requestId == null) {
-			requestId = "";
-		}
 		this.props = new DefaultProperties(host);
 	}
 
@@ -143,15 +126,13 @@
 
 	    if (webTarget == null) {
 	        initializeClient(getClient());
-        }
-		Builder builder = webTarget.request();
-		initializeHeaderMap(headerMap);
-
-		headerMap.put("X-ECOMP-RequestID", requestId);
-		for (Entry<String, String> entry : headerMap.entrySet()) {
-			builder.header(entry.getKey(), entry.getValue());
-		}
-		return builder;
+	    }
+	    Builder builder = webTarget.request();
+	    initializeHeaderMap(headerMap);
+	    for (Entry<String, String> entry : headerMap.entrySet()) {
+	        builder.header(entry.getKey(), entry.getValue());
+	    }
+	    return builder;
 	}
 	
 	protected WebTarget getWebTarget() {
@@ -179,7 +160,7 @@
 			String authHeaderValue = "Basic " + Base64.getEncoder().encodeToString(decryptedAuth);
 			headerMap.put("Authorization", authHeaderValue);
 		} catch (GeneralSecurityException e) {
-			msoLogger.error(e.getMessage(), e);
+			logger.error(e.getMessage(), e);
 		}
 	}
 
@@ -192,7 +173,7 @@
 	}
 
 	protected String getMergeContentType() {
-		return "application/merge-patch+json";
+		return APPLICATION_MERGE_PATCH_JSON;
 	}
 
 	protected Client getClient() {
@@ -203,11 +184,11 @@
 
 	protected void initializeClient(Client client) {
 		if (this.enableLogging()) {
-			client.register(new LoggingFilter(this.getMaxPayloadSize()));
+			client.register(new PayloadLoggingFilter(this.getMaxPayloadSize()));
 		}
 		CommonObjectMapperProvider provider = this.getCommonObjectMapperProvider();
 		client.register(new JacksonJsonProvider(provider.getMapper()));
-
+		
         jaxRsClientLogging = new JaxRsClientLogging();
         jaxRsClientLogging.setTargetService(getTargetEntity());
         client.register(jaxRsClientLogging);
diff --git a/common/src/main/java/org/onap/so/client/RestClientSSL.java b/common/src/main/java/org/onap/so/client/RestClientSSL.java
index 8eaeee9..cb2839a 100644
--- a/common/src/main/java/org/onap/so/client/RestClientSSL.java
+++ b/common/src/main/java/org/onap/so/client/RestClientSSL.java
@@ -32,7 +32,8 @@
 
 public abstract class RestClientSSL extends RestClient {
 	
-	public static final String SSL_KEY_STORE_KEY = "javax.net.ssl.keyStore";
+	private static final String TRUE = "true";
+    public static final String SSL_KEY_STORE_KEY = "javax.net.ssl.keyStore";
 	public static final String SSL_KEY_STORE_PASSWORD_KEY = "javax.net.ssl.keyStorePassword";
 	public static final String MSO_LOAD_SSL_CLIENT_KEYSTORE_KEY = "mso.load.ssl.client.keystore";
 	
@@ -51,19 +52,18 @@
 		Client client = null;
 		try {
 			String loadSSLKeyStore = System.getProperty(RestClientSSL.MSO_LOAD_SSL_CLIENT_KEYSTORE_KEY);
-			if(loadSSLKeyStore != null && loadSSLKeyStore.equalsIgnoreCase("true")) {
+			if(loadSSLKeyStore != null && loadSSLKeyStore.equalsIgnoreCase(TRUE)) {
 				KeyStore ks = getKeyStore();
 				if(ks != null) {
 					client = ClientBuilder.newBuilder().keyStore(ks, System.getProperty(RestClientSSL.SSL_KEY_STORE_PASSWORD_KEY)).build();
-					this.msoLogger.debug("RestClientSSL not using default SSL context - setting keystore here.");
+					logger.debug("RestClientSSL not using default SSL context - setting keystore here.");
 					return client;
 				}
 			}
 			//Use default SSL context 
 			client = ClientBuilder.newBuilder().sslContext(SSLContext.getDefault()).build();
-			this.msoLogger.debug("RestClientSSL using default SSL context!");
+			logger.info("RestClientSSL using default SSL context!");
 		} catch (NoSuchAlgorithmException e) {
-			//this.logger.error(MessageEnum.APIH_GENERAL_EXCEPTION, "AAI", "Client init", MsoLogger.ErrorCode.UnknownError, "could not create SSL client", e);
 			throw new RuntimeException(e);
 		}
 		return client;
diff --git a/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java b/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java
index 2329a5a..9d72fdf 100644
--- a/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java
+++ b/common/src/main/java/org/onap/so/client/adapter/rest/AdapterRestClient.java
@@ -72,7 +72,7 @@
 			encodedString = "Basic " + encodedString;
 			return encodedString;
 		} catch (GeneralSecurityException e) {
-			this.msoLogger.debug(e.getMessage());
+			logger.error(e.getMessage(),e);
 			return null;
 		}
 	}
diff --git a/common/src/main/java/org/onap/so/logging/jaxrs/filter/JaxRsClientLogging.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/JaxRsClientLogging.java
index 2cb375b..49dc71e 100644
--- a/common/src/main/java/org/onap/so/logging/jaxrs/filter/JaxRsClientLogging.java
+++ b/common/src/main/java/org/onap/so/logging/jaxrs/filter/JaxRsClientLogging.java
@@ -22,104 +22,126 @@
 
 
 import org.apache.commons.io.IOUtils;
-import org.onap.so.logger.MsoLogger;
+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.slf4j.MarkerFactory;
 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.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerResponseContext;
+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.Providers;
 import java.io.*;
-
-import java.time.Instant;
-import java.time.ZoneId;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Type;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.Locale;
+import java.util.Map;
 import java.util.UUID;
 
 @SuppressWarnings("SpringJavaInjectionPointsAutowiringInspection")
 @Component
+@Priority(0)
 public class JaxRsClientLogging implements ClientRequestFilter,ClientResponseFilter {
-	
-	private static MsoLogger logger = MsoLogger.getMsoLogger (MsoLogger.Catalog.RA,JaxRsClientLogging.class);
+    
+    @Context 
+    private Providers providers;
 
-	private TargetEntity targetEntity;
+    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){
-	    this.targetEntity = targetEntity;
+    public void setTargetService(TargetEntity targetEntity){
+        MDC.put("TargetEntity", targetEntity.toString());
     }
 
-	@Override
-	public void filter(ClientRequestContext clientRequest) {
+    @Override
+    public void filter(ClientRequestContext clientRequest) {
         try{
-            MultivaluedMap<String, Object> headers = clientRequest.getHeaders();
-            
-            
-            Instant instant = Instant.now();
-            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX" )
-                .withLocale( Locale.US )
-                .withZone( ZoneId.systemDefault() );
-
-            String requestId = MDC.get(MsoLogger.REQUEST_ID);
-            if(requestId == null || requestId.isEmpty()){
-                requestId = UUID.randomUUID().toString();
-                logger.warnSimple(clientRequest.getUri().getPath(),"Could not Find Request ID Generating New One");
-            }
-
-			MDC.put(MsoLogger.METRIC_BEGIN_TIME, formatter.format(instant));
-			MDC.put(MsoLogger.METRIC_START_TIME, String.valueOf(System.currentTimeMillis()));
-            MDC.put(MsoLogger.REQUEST_ID,requestId);	
-            MDC.put(MsoLogger.TARGETSERVICENAME, clientRequest.getUri().toString());
+            setupMDC(clientRequest);
+            setupHeaders(clientRequest);
+            logger.info(ONAPLogConstants.Markers.INVOKE, "Invoke");
         } catch (Exception e) {
-			logger.warnSimple("Error in incoming JAX-RS Inteceptor", 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("TargetEntity",MDC.get("TargetEntity"));
+    }
+
+    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) {
+    @Override
+    public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) {
 
         try {
-			Instant instant = Instant.now();
-			DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX" )
-			        .withLocale( Locale.US )
-			        .withZone( ZoneId.systemDefault() );
-			String startTime= MDC.get(MsoLogger.METRIC_START_TIME);
+            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_DESCRIPTION,getStringFromInputStream(responseContext));
+            MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, statusCode);
+            logger.info(MarkerFactory.getMarker("INVOKE_RETURN"), "InvokeReturn");
+            clearClientMDCs();
+        } catch ( Exception e) {
+            logger.warn("Error in outgoing JAX-RS Inteceptor", e);
+        }
+    }
 
-			long elapsedTime = System.currentTimeMillis()-Long.parseLong(startTime);
-			String statusCode;
-			if(Response.Status.Family.familyOf(responseContext.getStatus()).equals(Response.Status.Family.SUCCESSFUL)){		
-			    statusCode=MsoLogger.COMPLETE;
-			}else{							
-				statusCode=MsoLogger.StatusCode.ERROR.toString();				
-			}
-			MultivaluedMap<String, String> headers = responseContext.getHeaders();
-
-			String partnerName =  headers.getFirst(MsoLogger.HEADER_FROM_APP_ID );
-			if(partnerName == null || partnerName.isEmpty())
-				partnerName="UNKNOWN";
-			MDC.put(MsoLogger.RESPONSEDESC,getStringFromInputStream(responseContext));
-			MDC.put(MsoLogger.STATUSCODE, statusCode);
-			MDC.put(MsoLogger.RESPONSECODE,String.valueOf(responseContext.getStatus()));
-			MDC.put(MsoLogger.METRIC_TIMER, String.valueOf(elapsedTime));
-			MDC.put(MsoLogger.METRIC_END_TIME,formatter.format(instant));
-			MDC.put(MsoLogger.PARTNERNAME,partnerName);	
-            MDC.put(MsoLogger.TARGETENTITY, targetEntity.toString());
-			logger.recordMetricEvent();			
-		} catch ( Exception e) {
-			logger.warnSimple("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);
+    }
 
     private static String getStringFromInputStream(ClientResponseContext clientResponseContext) {
 
-	    InputStream is = clientResponseContext.getEntityStream();
-	    ByteArrayOutputStream boas = new ByteArrayOutputStream();
+        InputStream is = clientResponseContext.getEntityStream();
+        ByteArrayOutputStream boas = new ByteArrayOutputStream();
 
         try {
             IOUtils.copy(is,boas);
@@ -128,8 +150,9 @@
             return boas.toString();
 
         } catch (IOException e) {
-            logger.warnSimple("Failed to read response body", e);
+            logger.warn("Failed to read response body", e);
         }
         return "Unable to read input stream";
     }
+
 }
diff --git a/common/src/main/java/org/onap/so/client/policy/LoggingFilter.java b/common/src/main/java/org/onap/so/logging/jaxrs/filter/PayloadLoggingFilter.java
similarity index 92%
rename from common/src/main/java/org/onap/so/client/policy/LoggingFilter.java
rename to common/src/main/java/org/onap/so/logging/jaxrs/filter/PayloadLoggingFilter.java
index 83cf08f..29264f4 100644
--- a/common/src/main/java/org/onap/so/client/policy/LoggingFilter.java
+++ b/common/src/main/java/org/onap/so/logging/jaxrs/filter/PayloadLoggingFilter.java
@@ -18,7 +18,7 @@
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.so.client.policy;
+package org.onap.so.logging.jaxrs.filter;
 
 import java.io.BufferedInputStream;
 import java.io.ByteArrayOutputStream;
@@ -40,22 +40,24 @@
 import javax.ws.rs.ext.WriterInterceptorContext;
 
 import org.onap.so.logger.MsoLogger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 
 @Provider
-@Priority(0)
-public class LoggingFilter implements ClientRequestFilter, ClientResponseFilter, WriterInterceptor {
+@Priority(1)
+public class PayloadLoggingFilter implements ClientRequestFilter, ClientResponseFilter, WriterInterceptor {
 
-	private static final MsoLogger logger = MsoLogger.getMsoLogger(MsoLogger.Catalog.BPEL, LoggingFilter.class);
+	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 LoggingFilter() {
+	public PayloadLoggingFilter() {
 		maxEntitySize = 1024 * 1024;
 	}
 
-	public LoggingFilter(int maxPayloadSize) {
+	public PayloadLoggingFilter(int maxPayloadSize) {
 		this.maxEntitySize = Integer.min(maxPayloadSize, 1024 * 1024);
 	}
 
diff --git a/common/src/main/java/org/onap/so/utils/TargetEntity.java b/common/src/main/java/org/onap/so/utils/TargetEntity.java
index ad76e56..84dae95 100644
--- a/common/src/main/java/org/onap/so/utils/TargetEntity.java
+++ b/common/src/main/java/org/onap/so/utils/TargetEntity.java
@@ -20,13 +20,22 @@
 
 package org.onap.so.utils;
 
+import java.util.EnumSet;
 
 public enum TargetEntity {
     OPENSTACK_ADAPTER, BPMN, GRM ,AAI, DMAAP, POLICY, CATALOG_DB, REQUEST_DB, VNF_ADAPTER, SDNC_ADAPTER, NARAD;
 
-    private static final String PREFIX = "MSO";
+    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(){
-        return TargetEntity.PREFIX + "." + this.name();
+        if(getSOInternalComponents().contains(this))
+            return TargetEntity.PREFIX + "." + this.name();
+        else
+            return this.name();
     }
-}
+}
\ No newline at end of file
diff --git a/common/src/test/java/org/onap/so/adapter_utils/tests/MsoLoggerTest.java b/common/src/test/java/org/onap/so/adapter_utils/tests/MsoLoggerTest.java
deleted file mode 100644
index 29ac91c..0000000
--- a/common/src/test/java/org/onap/so/adapter_utils/tests/MsoLoggerTest.java
+++ /dev/null
@@ -1,331 +0,0 @@
-/*-
- * ============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.adapter_utils.tests;
-
-import org.onap.so.entity.MsoRequest;
-import org.onap.so.logger.MessageEnum;
-import org.onap.so.logger.MsoLogger;
-import org.onap.so.logger.MsoLogger.ErrorCode;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.slf4j.MDC;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-import java.net.URL;
-import java.nio.charset.Charset;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.List;
-
-/**
- * This class implements all test methods of the MsoLogger features.
- *
- *
- */
-public class MsoLoggerTest {
-
-	static MsoLogger msoLogger = MsoLogger.getMsoLogger(MsoLogger.Catalog.GENERAL, MsoLoggerTest.class);
-
-	/**
-	 * This method is called before any test occurs. It creates a fake tree from
-	 * scratch
-	 */
-	@BeforeClass
-	public static final void prepare() {
-
-	}
-
-	@Before
-	public final void cleanErrorLogFile() throws FileNotFoundException {
-		URL url = this.getClass().getClassLoader().getResource("logback-test.xml");
-		String logFile = url.getFile().substring(0, url.getFile().indexOf("test-classes"))
-				+ "/MSO/Test/errorjboss.server.name_IS_UNDEFINED.log";
-		PrintWriter asdcConfigFileWriter = new PrintWriter(logFile);
-		asdcConfigFileWriter.print("");
-		asdcConfigFileWriter.flush();
-		asdcConfigFileWriter.close();
-	}
-
-	@Before
-	public final void cleanMetricLogFile() throws FileNotFoundException {
-		URL url = this.getClass().getClassLoader().getResource("logback-test.xml");
-		String logFile = url.getFile().substring(0, url.getFile().indexOf("test-classes"))
-				+ "/MSO/Test/metricsjboss.server.name_IS_UNDEFINED.log";
-		PrintWriter asdcConfigFileWriter = new PrintWriter(logFile);
-		asdcConfigFileWriter.print("");
-		asdcConfigFileWriter.flush();
-		asdcConfigFileWriter.close();
-	}
-
-	@Before
-	public final void cleanAuditLogFile() throws FileNotFoundException {
-		URL url = this.getClass().getClassLoader().getResource("logback-test.xml");
-		String logFile = url.getFile().substring(0, url.getFile().indexOf("test-classes"))
-				+ "/MSO/Test/auditjbo.server.name_IS_UNDEFINED.log";
-		PrintWriter asdcConfigFileWriter = new PrintWriter(logFile);
-		asdcConfigFileWriter.print("");
-		asdcConfigFileWriter.flush();
-		asdcConfigFileWriter.close();
-	}
-
-	/**
-	 * This method implements a test of getSeverifyLevel method.
-	 */
-	@Test
-	public final void testGetSeverityLevel() {
-
-		try {
-			String levelInfo = (String) invokePriveMethod("getSeverityLevel", "INFO");
-			Assert.assertEquals(levelInfo, "0");
-
-			String levelWarn = (String) invokePriveMethod("getSeverityLevel", "WARN");
-			Assert.assertEquals(levelWarn, "1");
-
-			String levelERROR = (String) invokePriveMethod("getSeverityLevel", "ERROR");
-			Assert.assertEquals(levelERROR, "2");
-
-			String levelDEBUG = (String) invokePriveMethod("getSeverityLevel", "DEBUG");
-			Assert.assertEquals(levelDEBUG, "0");
-
-			String levelFATAL = (String) invokePriveMethod("getSeverityLevel", "FATAL");
-			Assert.assertEquals(levelFATAL, "3");
-		} catch (Exception e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * This method implements a test of getFinalServiceName method.
-	 */
-	@Test
-	public final void testGetFinalServiceName() {
-		try {
-			String serviceName1 = (String) invokePriveMethod("getFinalServiceName", "testServiceName1");
-			Assert.assertEquals(serviceName1, "testServiceName1");
-
-			MsoLogger.setServiceName("testServiceName2");
-			String serviceName2 = (String) invokePriveMethod("getFinalServiceName", "testServiceName1");
-			Assert.assertEquals(serviceName2, "testServiceName1");
-
-			String msgNull = null;
-			String serviceName3 = (String) invokePriveMethod("getFinalServiceName", msgNull);
-			Assert.assertEquals(serviceName3, "testServiceName2");
-
-			MsoLogger.resetServiceName();
-			String serviceName4 = (String) invokePriveMethod("getFinalServiceName", msgNull);
-			Assert.assertEquals(serviceName4, "invoke0");
-		} catch (Exception e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	@Test
-	public final void testPrepareMsg() {
-		try {
-			String msgNull = null;
-			MDC.clear();
-			invokePrepareMsg("INFO", null, null);
-
-			Assert.assertTrue(MDC.get(MsoLogger.REQUEST_ID).equals("trace-#")
-					&& MDC.get(MsoLogger.SERVICE_INSTANCE_ID).equals("trace-#")
-					&& MDC.get(MsoLogger.SERVICE_NAME).equals("invoke0") && MDC.get(MsoLogger.TIMER) == null
-					&& MDC.get(MsoLogger.ALERT_SEVERITY).equals("0"));
-
-			MsoLogger.setLoggerParameters("testRemoteIp", "testUser");
-			MsoLogger.setLogContext("testReqId", "testSvcId");
-			invokePrepareMsg("ERROR", "testServiceName3", null);
-			Assert.assertTrue(MDC.get(MsoLogger.REQUEST_ID).equals("testReqId")
-					&& MDC.get(MsoLogger.SERVICE_INSTANCE_ID).equals("testSvcId")
-					&& MDC.get(MsoLogger.SERVICE_NAME).equals("testServiceName3") && MDC.get(MsoLogger.TIMER) == null
-					&& MDC.get(MsoLogger.ALERT_SEVERITY).equals("2"));
-
-			MsoLogger.setServiceName("testServiceName2");
-			invokePrepareMsg("WARN", msgNull, msgNull);
-			Assert.assertTrue(MDC.get(MsoLogger.REQUEST_ID).equals("testReqId")
-					&& MDC.get(MsoLogger.SERVICE_INSTANCE_ID).equals("testSvcId")
-					&& MDC.get(MsoLogger.SERVICE_NAME).equals("testServiceName2") && MDC.get(MsoLogger.TIMER) == null
-					&& MDC.get(MsoLogger.ALERT_SEVERITY).equals("1"));
-
-			MDC.clear();
-			MsoRequest msoRequest = new MsoRequest();
-			msoRequest.setRequestId("reqId2");
-			msoRequest.setServiceInstanceId("servId2");
-			MsoLogger.setLogContext(msoRequest);
-			invokePrepareMsg("FATAL", null, "123");
-			Assert.assertTrue(MDC.get(MsoLogger.REQUEST_ID).equals("reqId2")
-					&& MDC.get(MsoLogger.SERVICE_INSTANCE_ID).equals("servId2")
-					&& MDC.get(MsoLogger.TIMER).equals("123") && MDC.get(MsoLogger.ALERT_SEVERITY).equals("3"));
-
-		} catch (Exception e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * This method implements a test of log methods
-	 */
-	@Test
-	@Ignore
-	public final void testLogMethods() {
-		try {
-			MDC.clear();
-			MsoLogger.setLogContext("reqId2", "servId2");
-			MsoLogger.setServiceName("MSO.testServiceName");
-			msoLogger.info(MessageEnum.LOGGER_UPDATE_SUC, "testLogger", "INFO", "DEBUG", "target entity",
-					"target service");
-			msoLogger.warn(MessageEnum.GENERAL_WARNING, "warning test", "", "", MsoLogger.ErrorCode.UnknownError,
-					"warning test");
-			msoLogger.error(MessageEnum.GENERAL_EXCEPTION, "target entity", "target service",
-					MsoLogger.ErrorCode.UnknownError, "error test");
-
-			// Fetch from the error log
-			URL url = this.getClass().getClassLoader().getResource("logback-test.xml");
-			String logFile = url.getFile().substring(0, url.getFile().indexOf("test-classes"))
-					+ "/MSO/Test/errorjboss.server.name_IS_UNDEFINED.log";
-
-			Path filePath = new File(logFile).toPath();
-			Charset charset = Charset.defaultCharset();
-			List<String> stringList = Files.readAllLines(filePath, charset);
-			String[] stringArray = stringList.toArray(new String[] {});
-			int size = stringArray.length;
-
-			Assert.assertTrue(stringArray[size - 3]
-					.contains("|reqId2|main|MSO.testServiceName||target entity|target service|INFO|null||")
-					&& stringArray[size - 3].contains(
-							"||MSO-GENERAL-5408I Successfully update Logger: testLogger from level INFO to level DEBUG"));
-			Assert.assertTrue(stringArray[size - 2]
-					.contains("|reqId2|main|MSO.testServiceName||||WARN|UnknownError|warning test|")
-					&& stringArray[size - 2].contains("|MSO-GENERAL-5401W WARNING: warning test"));
-			Assert.assertTrue(stringArray[size - 1].contains(
-					"|reqId2|main|MSO.testServiceName||target entity|target service|ERROR|UnknownError|error test|")
-					&& stringArray[size - 1].contains("|MSO-GENERAL-9401E Exception encountered"));
-
-		} catch (Exception e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	/**
-	 * This method implements a test of recordMetricEvent method.
-	 * 
-	 * @throws IOException
-	 */
-	@Test
-	@Ignore
-	public final void testRecordMetricEvent() throws IOException {
-		MDC.clear();
-		MsoLogger.setLogContext("reqId", "servId");
-		msoLogger.recordMetricEvent(123456789L, MsoLogger.StatusCode.COMPLETE, MsoLogger.ResponseCode.Suc, "Successful",
-				"VNF", "createVNF", null);
-		MDC.put(MsoLogger.REMOTE_HOST, "127.0.0.1");
-		MDC.put(MsoLogger.PARTNERNAME, "testUser");
-		msoLogger.recordMetricEvent(123456789L, MsoLogger.StatusCode.ERROR, MsoLogger.ResponseCode.ServiceNotAvailable,
-				"Exception", "SDNC", "removeSDNC", "testVNF");
-
-		// Fetch from the metric log
-		URL url = this.getClass().getClassLoader().getResource("logback-test.xml");
-		String logFile = url.getFile().substring(0, url.getFile().indexOf("test-classes"))
-				+ "/MSO/Test/metricsjboss.server.name_IS_UNDEFINED.log";
-
-		Path filePath = new File(logFile).toPath();
-		Charset charset = Charset.defaultCharset();
-		List<String> stringList = Files.readAllLines(filePath, charset);
-		String[] stringArray = stringList.toArray(new String[] {});
-		msoLogger.error(MessageEnum.GENERAL_EXCEPTION, "", "", MsoLogger.ErrorCode.UnknownError, "test error msg");
-
-		Assert.assertTrue(stringArray[0]
-				.contains("|reqId|servId|main||testRecordMetricEvent||VNF|createVNF|COMPLETE|0|Successful|"));
-		// count the occurance of symbol "|"
-		Assert.assertTrue((stringArray[0].length() - stringArray[0].replace("|", "").length()) == 28);
-		Assert.assertTrue(stringArray[1]
-				.contains("|reqId|servId|main||testRecordMetricEvent|testUser|SDNC|removeSDNC|ERROR|501|Exception|")
-				&& stringArray[1].contains("|127.0.0.1||||testVNF|||||"));
-		Assert.assertTrue((stringArray[1].length() - stringArray[1].replace("|", "").length()) == 28);
-	}
-
-	/**
-	 * This method implements a test of testRecordAuditEvent method.
-	 */
-
-	// User reflection to invoke to avoid change the publicity of the method
-	private static String invokePrepareMsg(String arg1, String arg2, String arg3) {
-		Method method;
-		try {
-			method = MsoLogger.class.getDeclaredMethod("prepareMsg", String.class, String.class, String.class);
-			method.setAccessible(true);
-			return (String) method.invoke(msoLogger, arg1, arg2, arg3);
-		} catch (NoSuchMethodException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (SecurityException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IllegalAccessException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IllegalArgumentException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (InvocationTargetException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return null;
-	}
-
-	// User reflection to invoke to avoid change the publicity of the method
-	private static Object invokePriveMethod(String methodName, String arg) {
-		Method method;
-		try {
-			method = MsoLogger.class.getDeclaredMethod(methodName, String.class);
-			method.setAccessible(true);
-			return method.invoke(msoLogger, arg);
-		} catch (NoSuchMethodException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (SecurityException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IllegalAccessException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IllegalArgumentException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (InvocationTargetException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		return null;
-	}
-}
diff --git a/common/src/test/java/org/onap/so/client/grm/GRMClientTest.java b/common/src/test/java/org/onap/so/client/grm/GRMClientTest.java
index 3cce6a6..7b78376 100644
--- a/common/src/test/java/org/onap/so/client/grm/GRMClientTest.java
+++ b/common/src/test/java/org/onap/so/client/grm/GRMClientTest.java
@@ -24,9 +24,11 @@
 import static com.github.tomakehurst.wiremock.client.WireMock.post;
 import static com.github.tomakehurst.wiremock.client.WireMock.urlPathEqualTo;
 import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.wireMockConfig;
+import static com.github.tomakehurst.wiremock.client.WireMock.*;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-
+import static org.junit.Assert.fail;
 import java.io.File;
 import java.nio.file.Files;
 import java.util.ArrayList;
@@ -43,6 +45,7 @@
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
 import org.onap.so.client.grm.beans.OperationalInfo;
 import org.onap.so.client.grm.beans.Property;
 import org.onap.so.client.grm.beans.ServiceEndPoint;
@@ -54,8 +57,7 @@
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.tomakehurst.wiremock.junit.WireMockRule;
-import org.onap.so.logger.MsoLogger;
-import org.onap.so.logger.MsoLogger.Catalog;
+
 import org.onap.so.utils.TestAppender;
 
 public class GRMClientTest {
@@ -66,6 +68,8 @@
 	@Rule
 	public ExpectedException thrown = ExpectedException.none();
 	
+	private static final String uuidRegex = "(?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-5][0-9a-f]{3}-?[089ab][0-9a-f]{3}-?[0-9a-f]{12}$";
+	
 	@BeforeClass
 	public static void setUp() throws Exception {
 		System.setProperty("mso.config.path", "src/test/resources");
@@ -81,25 +85,45 @@
 			.willReturn(aResponse()
 				.withStatus(200)
 				.withHeader("Content-Type", MediaType.APPLICATION_JSON)
-				.withHeader("X-FromAppId", "GRM")
 				.withBody(endpoints)));
 
-		MDC.put(MsoLogger.SERVICE_NAME, "my-value");
+		MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, "/test");
 		GRMClient client = new GRMClient();
 		ServiceEndPointList sel = client.findRunningServices("TEST.ECOMP_PSL.*", 1, "TEST");
 		List<ServiceEndPoint> list = sel.getServiceEndPointList();
 		assertEquals(3, list.size());
-        ILoggingEvent logEvent = TestAppender.events.get(0);
-        Map<String,String> mdc = logEvent.getMDCPropertyMap();
-        assertNotNull(mdc.get(MsoLogger.METRIC_BEGIN_TIME));
-         assertNotNull(mdc.get(MsoLogger.METRIC_END_TIME));
-        assertNotNull(mdc.get(MsoLogger.REQUEST_ID));
-        assertNotNull(mdc.get(MsoLogger.METRIC_TIMER));
-        assertEquals("200",mdc.get(MsoLogger.RESPONSECODE));
-        assertEquals("GRM",mdc.get(MsoLogger.PARTNERNAME));
-        assertEquals("expect value to not be overwritten by jax rs client interceptor", "my-value",mdc.get(MsoLogger.SERVICE_NAME));
-        assertEquals("COMPLETE",mdc.get(MsoLogger.STATUSCODE));
-        assertNotNull(mdc.get(MsoLogger.RESPONSEDESC));
+		
+		boolean foundInvoke = false;
+		boolean foundInvokeReturn = false;
+        for(ILoggingEvent logEvent : TestAppender.events)
+            if(logEvent.getLoggerName().equals("org.onap.so.logging.jaxrs.filter.JaxRsClientLogging") &&
+                    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")){
+                Map<String,String> mdc = logEvent.getMDCPropertyMap();
+                assertNotNull(mdc.get(ONAPLogConstants.MDCs.INVOCATION_ID));
+                assertEquals("200",mdc.get(ONAPLogConstants.MDCs.RESPONSE_CODE));
+                assertEquals("COMPLETED",mdc.get(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE));
+                foundInvokeReturn=true;
+            }
+        
+        if(!foundInvoke)
+            fail("INVOKE Marker not found");
+        
+        if(!foundInvokeReturn)
+            fail("INVOKE RETURN Marker not found");
+        
+        verify(postRequestedFor(urlEqualTo("/GRMLWPService/v1/serviceEndPoint/findRunning"))
+                .withHeader(ONAPLogConstants.Headers.INVOCATION_ID.toString(), matching(uuidRegex))
+                        .withHeader(ONAPLogConstants.Headers.REQUEST_ID.toString(), matching(uuidRegex))
+                                .withHeader(ONAPLogConstants.Headers.PARTNER_NAME.toString(), equalTo("SO")));
+        TestAppender.events.clear();
 	}
 	
 	@Test 
@@ -116,68 +140,6 @@
 		client.findRunningServices("TEST.ECOMP_PSL.*", 1, "TEST");
 	}
 	
-	@Ignore
-	@Test
-	public void testAdd() throws Exception {
-
-		wireMockRule.stubFor(post(urlPathEqualTo("/GRMLWPService/v1/serviceEndPoint/add"))
-			.willReturn(aResponse()
-				.withStatus(202)
-				.withHeader("Content-Type", MediaType.APPLICATION_JSON)
-				.withBody("test")));
-		wireMockRule.addMockServiceRequestListener((request, response) -> {
-			System.out.println("URL Requested => " + request.getAbsoluteUrl());
-			System.out.println("Request Body => " + request.getBodyAsString());
-			System.out.println("Request Headers => " + request.getHeaders().toString());
-			System.out.println("Response Status => " + response.getStatus());
-			System.out.println("Response Body => " + response.getBodyAsString());
-		});	
-		
-		Version ver = new Version();
-		ver.setMajor(1);
-		ver.setMinor(0);
-		ver.setPatch("0");
-
-		ServiceEndPoint sep = new ServiceEndPoint();
-		sep.setName("TEST.ECOMP_PSL.Inventory");
-		sep.setVersion(ver);
-		sep.setHostAddress("127.0.0.1");
-		sep.setListenPort("8080");
-		sep.setLatitude("37.7022");
-		sep.setLongitude("121.9358");
-		sep.setContextPath("/");
-		sep.setRouteOffer("TEST");
-		
-		OperationalInfo operInfo = new OperationalInfo();
-		operInfo.setCreatedBy("edge");
-		operInfo.setUpdatedBy("edge");
-		
-		sep.setOperationalInfo(operInfo);
-		
-		Property prop1 = new Property();
-		prop1.setName("Environment");
-		prop1.setValue("TEST");
-		
-		Property prop2 = new Property();
-		prop2.setName("cpfrun_cluster_name");
-		prop2.setValue("testcase_cluster_no_cluster");
-		
-		List<Property> props = new ArrayList<Property>();
-		props.add(prop1);
-		props.add(prop2);
-		
-		sep.setProperties(props);
-
-		ServiceEndPointRequest request = new ServiceEndPointRequest();
-		request.setEnv("DEV");
-		request.setServiceEndPoint(sep);
-		
-		System.out.println("Request in JSON: " + mapper.writeValueAsString(request));
-		
-		GRMClient client = new GRMClient();
-		client.addServiceEndPoint(request);
-	}
-	
 	@Test
 	public void testAddFail() throws Exception {
 		wireMockRule.stubFor(post(urlPathEqualTo("/GRMLWPService/v1/serviceEndPoint/add"))
diff --git a/common/src/test/resources/logback-test.xml b/common/src/test/resources/logback-test.xml
index c4248bf..772eeab 100644
--- a/common/src/test/resources/logback-test.xml
+++ b/common/src/test/resources/logback-test.xml
@@ -1,8 +1,8 @@
 <!--
   ============LICENSE_START=======================================================
-  ECOMP MSO
+  ONAP SO
   ================================================================================
-  Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+  Copyright (C) 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.
@@ -18,159 +18,58 @@
   ============LICENSE_END=========================================================
   -->
 
-<configuration scan="false" debug="true">
-  <!--<jmxConfigurator /> -->
-  <!-- directory path for all other type logs -->
+<configuration>
+	<property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}"/>
+    <property name="p_lvl" value="%level"/>
+    <property name="p_log" value="%logger"/>
+    <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}"/>
+    <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+    <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+    <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+    <property name="p_thr" value="%thread"/>
+    <property name="pattern" value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n"/>
 
-  <property name="logDir" value="./target" />
-  
-  <!-- directory path for debugging type logs -->
-  <property name="debugDir" value="./target" />
-  
-  <!--  specify the component name 
-    <ECOMP-component-name>::= "MSO" | "DCAE" | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC"  -->
-  <property name="componentName" value="MSO"></property>
-  <property name="subComponentName" value="Test"></property>
-  <!--  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="errorPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n" />
-  <property name="debugPattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}|%X{RequestId}|%msg%n" />
-
-  <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%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" />
-  <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%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" />
-
-  <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
-  <property name="debugLogDirectory" value="${debugDir}/${componentName}/${subComponentName}" />
-
-  <appender name="test" class="org.onap.so.utils.TestAppender"/>
-  <!-- ============================================================================ -->
-  <!-- EELF Appenders -->
-  <!-- ============================================================================ -->
-
-  <!-- The EELFAppender is used to record events to the general application 
-    log -->
-  
-  <!-- EELF Audit Appender. This appender is used to record audit engine 
-    related logging events. The audit logger and appender are specializations 
-    of the EELF application root logger and appender. This can be used to segregate 
-    Policy engine events from other components, or it can be eliminated to record 
-    these events as part of the application root log. -->
-    
-  <appender name="EELFAudit"
-    class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <file>${logDirectory}/${auditLogName}${jboss.server.name}.log</file>
-    <rollingPolicy
-      class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/${auditLogName}${jboss.server.name}.log.%d</fileNamePattern>
-      <!--<maxHistory>30</maxHistory>-->
-    </rollingPolicy>
-    <encoder>
-         <pattern>${auditPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
-    <queueSize>500</queueSize>
-    <discardingThreshold>0</discardingThreshold>
-    <appender-ref ref="EELFAudit" />
-  </appender>
-
-<appender name="EELFMetrics"
-    class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <file>${logDirectory}/${metricsLogName}${jboss.server.name}.log</file>
-    <rollingPolicy
-      class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/${metricsLogName}${jboss.server.name}.log.%d</fileNamePattern>
-      <!--<maxHistory>30</maxHistory>-->
-    </rollingPolicy>
-    <encoder>
-      <!-- <pattern>"%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - 
-        %msg%n"</pattern> -->
-      <pattern>${metricPattern}</pattern>
-    </encoder>
-  </appender>
-  
-  
-  <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
-    <queueSize>500</queueSize>
-    <discardingThreshold>0</discardingThreshold>
-    <appender-ref ref="EELFMetrics"/>
-  </appender>
-   
-  <appender name="EELFError"
-    class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <file>${logDirectory}/${errorLogName}${jboss.server.name}.log</file>
-    <rollingPolicy
-      class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/${errorLogName}${jboss.server.name}.log.%d</fileNamePattern>
-      <!--<maxHistory>30</maxHistory>-->
-    </rollingPolicy>
-    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-      <level>INFO</level>
-    </filter>
-    <encoder>
-      <pattern>${errorPattern}</pattern>
-    </encoder>
-  </appender>
-  
-  <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
-    <queueSize>500</queueSize>
-    <discardingThreshold>0</discardingThreshold>
-    <appender-ref ref="EELFError"/>
-  </appender>
-  
-   <appender name="EELFDebug"
-    class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <file>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log</file>
-    <rollingPolicy
-      class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${debugLogDirectory}/${debugLogName}${jboss.server.name}.log.%d</fileNamePattern>
-      <!--<maxHistory>30</maxHistory>-->
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  
-  <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
-    <queueSize>500</queueSize>
-    <discardingThreshold>0</discardingThreshold>
-    <appender-ref ref="EELFDebug" />
-    <includeCallerData>true</includeCallerData>
-  </appender>
- 
-  	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
 		<encoder>
-			<pattern>%d{HH:mm:ss.SSS} [%thread] |%X{RequestId}| %-5level
-				%logger{1024} - %msg%n
-			</pattern>
+			<pattern>${pattern}</pattern>
 		</encoder>
 	</appender>
+
+	<appender name="test"
+		class="org.onap.so.utils.TestAppender" />
+
+	<logger name="com.att.ecomp.audit" level="info" additivity="false">
+		<appender-ref ref="STDOUT" />
+	</logger>
+
+	<logger name="com.att.eelf.metrics" level="info" additivity="false">
+		<appender-ref ref="STDOUT" />
+	</logger>
+
+	<logger name="com.att.eelf.error" level="WARN" additivity="false">
+		<appender-ref ref="STDOUT" />
+	</logger>
+
+	<logger name="org.onap" level="${so.log.level:-DEBUG}" additivity="false">
+		<appender-ref ref="STDOUT" />
+		<appender-ref ref="test" />
+	</logger>
 	
-  <!-- ============================================================================ -->
-  <!--  EELF loggers -->
-  <!-- ============================================================================ -->
+	<logger name="org.flywaydb" level="DEBUG" additivity="false">
+        <appender-ref ref="STDOUT" />
+    </logger>
+	
 
-  <logger name="com.att.eelf.audit" level="${so.log.level:-DEBUG}" additivity="false">
-    <appender-ref ref="asyncEELFAudit" /> 
-  </logger>
-  
-  <logger name="METRIC" level="${so.log.level:-DEBUG}" additivity="true">
-    <appender-ref ref="asyncEELFMetrics" />
-    <appender-ref ref="test" />
-  </logger>
+	<logger name="ch.vorburger" level="WARN" additivity="false">
+		<appender-ref ref="STDOUT" />
+	</logger>
+	
 
-  <logger name="com.att.eelf.error" level="${so.log.level:-DEBUG}" additivity="false">
-    <appender-ref ref="asyncEELFError" />
-  </logger>
-  
-  <root level="${so.log.level:-DEBUG}">
-    <appender-ref ref="asyncEELFDebug" />
-    <appender-ref ref="STDOUT" />
-  </root>
+	<root level="WARN">
+		<appender-ref ref="STDOUT" />
+		<appender-ref ref="test" />
+	</root>
 
 
 </configuration>
\ No newline at end of file
diff --git a/common/src/test/resources/mso-bad.json b/common/src/test/resources/mso-bad.json
deleted file mode 100644
index 1aaea50..0000000
--- a/common/src/test/resources/mso-bad.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-	"asdc-connections": {
-		"asdc-controller1": {
-			"asdcUser": "user1",
-			"asdcConsumerGroup": "consumer1",
-			"asdcConsumerId": "consumer1",
-			"asdcEnvironmentName": "PROD",
-			"asdcAddress": "localhost:8443",
-			"asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
-		},
-		"asdc-controller2": {
-			"asdcUser": "user2",
-			"asdcConsumerGroup": "consumer2",
-			"asdcConsumerId": "consumer2",
-			"asdcEnvironmentName": "E2E",
-			"asdcAddress": "localhost:8443",
-			"asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
-		}
-	}
-}
\ No newline at end of file
diff --git a/common/src/test/resources/mso.json b/common/src/test/resources/mso.json
deleted file mode 100644
index e8ee4a9..0000000
--- a/common/src/test/resources/mso.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
-  "asdc-connections":{
-    "asdc-controller1":{
-        "asdcUser": "user1",
-        "asdcConsumerGroup": "consumer1",
-        "asdcConsumerId": "consumer1",
-        "asdcEnvironmentName": "PROD",
-        "asdcAddress": "localhost:8443",
-        "asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
-    },
-    "asdc-controller2":{
-        "asdcUser": "user2",
-        "asdcConsumerGroup": "consumer2",
-        "asdcConsumerId": "consumer2",
-        "asdcEnvironmentName": "E2E",
-        "asdcAddress": "localhost:8443",
-        "asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
-    }
-  },
-  "mso.properties.reload.time.minutes":2
-}
diff --git a/common/src/test/resources/mso.properties b/common/src/test/resources/mso.properties
deleted file mode 100644
index bb0e4eb..0000000
--- a/common/src/test/resources/mso.properties
+++ /dev/null
@@ -1,28 +0,0 @@
-###
-# ============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=========================================================
-###
-
-mso.properties.reload.time.minutes=2
-ecomp.mso.cloud.1.cloudId=MT
-ecomp.mso.cloud.1.keystoneUrl=http://localhost:5000/v2.0
-ecomp.mso.cloud.1.msoId=John
-ecomp.mso.cloud.1.publicNetId=FD205490A48D48475607C36B9AD902BF
-ecomp.mso.cloud.1.test=1234
-ecomp.mso.cloud.1.boolean=true
-ecomp.mso.cloud.1.enum=enum1
diff --git a/common/src/test/resources/mso2.json b/common/src/test/resources/mso2.json
deleted file mode 100644
index bac30c4..0000000
--- a/common/src/test/resources/mso2.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-	"asdc-connections": {
-		"asdc-controller1": {
-			"asdcUser": "user1B",
-			"asdcConsumerGroup": "consumer1",
-			"asdcConsumerId": "consumer1",
-			"asdcEnvironmentName": "PROD",
-			"asdcAddress": "localhost:8443",
-			"asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
-		},
-		"asdc-controller2": {
-			"asdcUser": "user2B",
-			"asdcConsumerGroup": "consumer2",
-			"asdcConsumerId": "consumer2",
-			"asdcEnvironmentName": "E2E",
-			"asdcAddress": "localhost:8443",
-			"asdcPassword": "1c551b8b5ab91fcd5a0907b11c304199"
-		}
-	}
-}
\ No newline at end of file
diff --git a/common/src/test/resources/mso2.properties b/common/src/test/resources/mso2.properties
deleted file mode 100644
index 423346e..0000000
--- a/common/src/test/resources/mso2.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###
-# ============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=========================================================
-###
-
-mso.properties.reload.time.minutes=1
-ecomp.mso.cloud.1.cloudId=MT2
diff --git a/cxf-logging/.gitignore b/cxf-logging/.gitignore
new file mode 100644
index 0000000..c2a9623
--- /dev/null
+++ b/cxf-logging/.gitignore
@@ -0,0 +1,2 @@
+/tattletale-jar/
+/bin/
diff --git a/cxf-logging/pom.xml b/cxf-logging/pom.xml
new file mode 100644
index 0000000..378d169
--- /dev/null
+++ b/cxf-logging/pom.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+        <groupId>org.onap.so</groupId>
+        <artifactId>so</artifactId>
+        <version>1.3.0-SNAPSHOT</version>
+	</parent>
+	<name>CXFLogging</name>
+	<description>Common CXF Logging Classes</description>
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.cxf</groupId>
+			<artifactId>cxf-rt-rs-client</artifactId>
+			<version>${cxf.version}</version>
+		</dependency>
+		<dependency>
+    		<groupId>org.apache.cxf</groupId>
+    		<artifactId>cxf-rt-bindings-soap</artifactId>
+  			<version>${cxf.version}</version>
+		</dependency>
+		<dependency>
+    		<groupId>org.apache.cxf</groupId>
+    		<artifactId>cxf-rt-transports-http</artifactId>
+    		<version>${cxf.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>javax.servlet-api</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-ext</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.onap.logging-analytics</groupId>
+  			<artifactId>logging-slf4j</artifactId>
+  			<version>1.2.2-SNAPSHOT</version>
+  			<exclusions>
+				<exclusion>
+					<groupId>com.att.eelf</groupId>
+					<artifactId>eelf-core</artifactId>
+				</exclusion>
+			</exclusions>
+  		</dependency>
+    </dependencies>
+	<build>
+		<resources>
+			<resource>
+				<directory>src/main/resources</directory>
+				<filtering>true</filtering>
+			</resource>
+			<resource>
+				<directory>src/main/java</directory>
+				<includes>
+					<include>**/*.java</include>
+				</includes>
+			</resource>
+		</resources>		
+	</build>
+	<artifactId>cxf-logging</artifactId>
+</project>
diff --git a/common/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingInInterceptor.java b/cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingInInterceptor.java
similarity index 87%
rename from common/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingInInterceptor.java
rename to cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingInInterceptor.java
index 9aed537..52d26fb 100644
--- a/common/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingInInterceptor.java
+++ b/cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingInInterceptor.java
@@ -1,38 +1,26 @@
 package org.onap.so.logging.cxf.interceptor;
 
 
-import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
-import java.util.stream.Collectors;
 import javax.servlet.http.HttpServletRequest;
-import javax.xml.namespace.QName;
 import org.apache.cxf.binding.soap.SoapMessage;
 import org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor;
 import org.apache.cxf.interceptor.Fault;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.phase.Phase;
-import org.apache.cxf.service.model.MessageInfo;
-import org.apache.cxf.service.model.OperationInfo;
 import org.apache.cxf.transport.http.AbstractHTTPDestination;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
-import org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging;
-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;
 
-@Component
+
 public class SOAPLoggingInInterceptor extends AbstractSoapInterceptor{
 
     protected static Logger logger = LoggerFactory.getLogger(SOAPLoggingInInterceptor.class);
-    
-    @Autowired
-    MDCSetup mdcSetup;
-    
+
     public SOAPLoggingInInterceptor() {
         super(Phase.READ);
     }
@@ -40,7 +28,7 @@
     @Override
     public void handleMessage(SoapMessage message) throws Fault {
         try {
-  
+            SOAPMDCSetup mdcSetup = new SOAPMDCSetup();
             Map<String, List<String>> headers  = (Map<String,List<String>>) message.get(Message.PROTOCOL_HEADERS);
             HttpServletRequest request = (HttpServletRequest)message.get(AbstractHTTPDestination.HTTP_REQUEST);
             request.getRemoteAddr();
diff --git a/common/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingOutInterceptor.java b/cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingOutInterceptor.java
similarity index 72%
rename from common/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingOutInterceptor.java
rename to cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingOutInterceptor.java
index c50e505..1ddf268 100644
--- a/common/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingOutInterceptor.java
+++ b/cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPLoggingOutInterceptor.java
@@ -1,39 +1,25 @@
 package org.onap.so.logging.cxf.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.xml.namespace.QName;
 import org.apache.cxf.binding.soap.SoapMessage;
 import org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor;
 import org.apache.cxf.interceptor.Fault;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.phase.Phase;
-import org.apache.cxf.service.model.MessageInfo;
-import org.apache.cxf.service.model.OperationInfo;
-import org.apache.cxf.transport.http.AbstractHTTPDestination;
 import org.onap.logging.ref.slf4j.ONAPLogConstants;
-import org.onap.so.exceptions.MSOException;
-import org.onap.so.logging.jaxrs.filter.JaxRsFilterLogging;
-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;
 
-@Component
+
+
 public class SOAPLoggingOutInterceptor extends AbstractSoapInterceptor{
 
     private static final String _500 = "500";
 
     protected static Logger logger = LoggerFactory.getLogger(SOAPLoggingOutInterceptor.class);
     
-    @Autowired
-    MDCSetup mdcSetup;
+
     
     public SOAPLoggingOutInterceptor() {
         super(Phase.WRITE);
diff --git a/cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPMDCSetup.java b/cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPMDCSetup.java
new file mode 100644
index 0000000..6991949
--- /dev/null
+++ b/cxf-logging/src/main/java/org/onap/so/logging/cxf/interceptor/SOAPMDCSetup.java
@@ -0,0 +1,53 @@
+package org.onap.so.logging.cxf.interceptor;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.time.ZoneOffset;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.UUID;
+import javax.servlet.http.HttpServletRequest;
+import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.MDC;
+
+
+
+public class SOAPMDCSetup {
+    
+    protected static Logger logger = LoggerFactory.getLogger(SOAPMDCSetup.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));
+    }
+    
+   
+}
\ No newline at end of file
diff --git a/cxf-logging/src/test/resources/logback-test.xml b/cxf-logging/src/test/resources/logback-test.xml
new file mode 100644
index 0000000..772eeab
--- /dev/null
+++ b/cxf-logging/src/test/resources/logback-test.xml
@@ -0,0 +1,75 @@
+<!--
+  ============LICENSE_START=======================================================
+  ONAP SO
+  ================================================================================
+  Copyright (C) 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=========================================================
+  -->
+
+<configuration>
+	<property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}"/>
+    <property name="p_lvl" value="%level"/>
+    <property name="p_log" value="%logger"/>
+    <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}"/>
+    <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+    <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+    <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>
+    <property name="p_thr" value="%thread"/>
+    <property name="pattern" value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n"/>
+
+
+	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+		<encoder>
+			<pattern>${pattern}</pattern>
+		</encoder>
+	</appender>
+
+	<appender name="test"
+		class="org.onap.so.utils.TestAppender" />
+
+	<logger name="com.att.ecomp.audit" level="info" additivity="false">
+		<appender-ref ref="STDOUT" />
+	</logger>
+
+	<logger name="com.att.eelf.metrics" level="info" additivity="false">
+		<appender-ref ref="STDOUT" />
+	</logger>
+
+	<logger name="com.att.eelf.error" level="WARN" additivity="false">
+		<appender-ref ref="STDOUT" />
+	</logger>
+
+	<logger name="org.onap" level="${so.log.level:-DEBUG}" additivity="false">
+		<appender-ref ref="STDOUT" />
+		<appender-ref ref="test" />
+	</logger>
+	
+	<logger name="org.flywaydb" level="DEBUG" additivity="false">
+        <appender-ref ref="STDOUT" />
+    </logger>
+	
+
+	<logger name="ch.vorburger" level="WARN" additivity="false">
+		<appender-ref ref="STDOUT" />
+	</logger>
+	
+
+	<root level="WARN">
+		<appender-ref ref="STDOUT" />
+		<appender-ref ref="test" />
+	</root>
+
+
+</configuration>
\ No newline at end of file
diff --git a/mso-api-handlers/mso-api-handler-common/pom.xml b/mso-api-handlers/mso-api-handler-common/pom.xml
index 0743a2d..b1963f1 100644
--- a/mso-api-handlers/mso-api-handler-common/pom.xml
+++ b/mso-api-handlers/mso-api-handler-common/pom.xml
@@ -130,20 +130,6 @@
 			<groupId>org.onap.so</groupId>
 			<artifactId>common</artifactId>
 			<version>${project.version}</version>
-			<exclusions>
-				<exclusion>
-         			<groupId>org.apache.cxf</groupId>
-          			<artifactId>cxf-rt-rs-client</artifactId>
-        		</exclusion>
-        		<exclusion>
-         			<groupId>org.apache.cxf</groupId>
-          			<artifactId>cxf-rt-bindings-soap</artifactId>
-        		</exclusion>
-        		<exclusion>
-         			<groupId>org.apache.cxf</groupId>
-          			<artifactId>cxf-rt-transports-http</artifactId>
-        		</exclusion>
-        	</exclusions>
 		</dependency>
 	</dependencies>
 
diff --git a/mso-catalog-db/pom.xml b/mso-catalog-db/pom.xml
index cd4f25e..7f86cba 100644
--- a/mso-catalog-db/pom.xml
+++ b/mso-catalog-db/pom.xml
@@ -52,20 +52,6 @@
 			<groupId>org.onap.so</groupId>
 			<artifactId>common</artifactId>
 			<version>${project.version}</version>
-			<exclusions>
-				<exclusion>
-         			<groupId>org.apache.cxf</groupId>
-          			<artifactId>cxf-rt-rs-client</artifactId>
-        		</exclusion>
-        		<exclusion>
-         			<groupId>org.apache.cxf</groupId>
-          			<artifactId>cxf-rt-bindings-soap</artifactId>
-        		</exclusion>
-        		<exclusion>
-         			<groupId>org.apache.cxf</groupId>
-          			<artifactId>cxf-rt-transports-http</artifactId>
-        		</exclusion>
-        	</exclusions>
 		</dependency>
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
diff --git a/pom.xml b/pom.xml
index d2ddd6c..59f0d5e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,6 +29,7 @@
 		<module>asdc-controller</module>
 		<module>bpmn</module>
 		<module>cloudify-client</module>
+		<module>cxf-logging</module>
 		<module>packages</module>
 	</modules>
 	<properties>
@@ -427,7 +428,7 @@
 					<version>2.20</version>
 					<configuration>
 						<systemPropertyVariables>
-							<so.log.level>${so.log.level}</so.log.level>
+							<so.log.level>DEBUG</so.log.level>
 						</systemPropertyVariables>
 						<rerunFailingTestsCount>2</rerunFailingTestsCount>
 					</configuration>
@@ -439,7 +440,7 @@
 					<configuration>
 						<skip>true</skip>
 						<systemPropertyVariables>
-							<so.log.level>${so.log.level}</so.log.level>
+							<so.log.level>DEBUG</so.log.level>
 						</systemPropertyVariables>
 						<rerunFailingTestsCount>2</rerunFailingTestsCount>
 					</configuration>