Update Logging Specifications

Create our own logging constants to remove the dependency to
org.onap.logging-analytics:logging-library

Issue-ID: CLAMP-203, CLAMP-204, CLAMP-205
Change-Id: Id231dec1e91390f8f2d10a8eef03528da8ab9be5
Signed-off-by: xg353y <xg353y@intl.att.com>
diff --git a/pom.xml b/pom.xml
index 6c37666..026eb5c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -68,7 +68,6 @@
 				<java.version>1.8</java.version>
 
 				<eelf.core.version>1.0.0</eelf.core.version>
-				<logging.analytics.version>1.2.2-SNAPSHOT</logging.analytics.version>
 				<camel.version>2.22.0</camel.version>
 				<springboot.version>2.0.2.RELEASE</springboot.version>
 
@@ -226,11 +225,6 @@
 						<version>${eelf.core.version}</version>
 				</dependency>
 				<dependency>
-						<groupId>org.onap.logging-analytics</groupId>
-						<artifactId>logging-library</artifactId>
-						<version>${logging.analytics.version}</version>
-				</dependency>
-				<dependency>
 						<groupId>org.codehaus.janino</groupId>
 						<artifactId>janino</artifactId>
 						<version>3.0.8</version>
diff --git a/src/main/java/org/onap/clamp/clds/service/CldsService.java b/src/main/java/org/onap/clamp/clds/service/CldsService.java
index 2139b3d..bc58ee6 100644
--- a/src/main/java/org/onap/clamp/clds/service/CldsService.java
+++ b/src/main/java/org/onap/clamp/clds/service/CldsService.java
@@ -74,7 +74,7 @@
 import org.onap.clamp.clds.transform.XslTransformer;
 import org.onap.clamp.clds.util.JacksonUtils;
 import org.onap.clamp.clds.util.LoggingUtils;
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.clamp.clds.util.ONAPLogConstants;
 import org.slf4j.event.Level;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
diff --git a/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java b/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java
index cca0afd..d82e7c6 100644
--- a/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java
+++ b/src/main/java/org/onap/clamp/clds/service/CldsTemplateService.java
@@ -33,7 +33,7 @@
 import org.onap.clamp.clds.model.CldsTemplate;
 import org.onap.clamp.clds.model.ValueItem;
 import org.onap.clamp.clds.util.LoggingUtils;
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.clamp.clds.util.ONAPLogConstants;
 import org.slf4j.event.Level;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
diff --git a/src/main/java/org/onap/clamp/clds/util/LoggingUtils.java b/src/main/java/org/onap/clamp/clds/util/LoggingUtils.java
index a20a700..cdb2e29 100644
--- a/src/main/java/org/onap/clamp/clds/util/LoggingUtils.java
+++ b/src/main/java/org/onap/clamp/clds/util/LoggingUtils.java
@@ -45,7 +45,6 @@
 import org.springframework.security.core.context.SecurityContextHolder;

 

 import org.onap.clamp.clds.service.DefaultUserNameHandler;

-import org.onap.logging.ref.slf4j.ONAPLogConstants;

 

 /**

  * This class handles the special info that appear in the log, like RequestID,

@@ -58,8 +57,6 @@
 

     /** String constant for messages <tt>ENTERING</tt>, <tt>EXITING</tt>, etc. */

     private static final String EMPTY_MESSAGE = "";

-    private static final String INVOCATIONID_OUT = "InvocationIDOut";

-    private static final String TARGET_ENTITY = "TargetEngity";

 

     /** Logger delegate. */

     private EELFLogger mLogger;

@@ -209,8 +206,8 @@
         		serviceName.equalsIgnoreCase(EMPTY_MESSAGE)) {

             MDC.put(ONAPLogConstants.MDCs.SERVICE_NAME, request.getRequestURI());

         }

-        

-        this.mLogger.info("ENTRY");

+

+        this.mLogger.info(ONAPLogConstants.Markers.ENTRY);

     }

 

     /**

@@ -224,7 +221,7 @@
             MDC.put(ONAPLogConstants.MDCs.RESPONSE_DESCRIPTION, defaultToEmpty(descrption));

             MDC.put(ONAPLogConstants.MDCs.RESPONSE_SEVERITY, defaultToEmpty(severity));

             MDC.put(ONAPLogConstants.MDCs.RESPONSE_STATUS_CODE, defaultToEmpty(status));

-            this.mLogger.info("EXIT");

+            this.mLogger.info(ONAPLogConstants.Markers.EXIT);

         }

         finally {

             MDC.clear();

@@ -255,13 +252,13 @@
         // Log INVOKE*, with the invocationID as the message body.

         // (We didn't really want this kind of behavior in the standard,

         // but is it worse than new, single-message MDC?)

-        this.mLogger.info("INVOKE");

-        this.mLogger.info("INVOKE-" + ONAPLogConstants.InvocationMode.SYNCHRONOUS.toString() + "{"+ invocationID +"}");

+        this.mLogger.info(ONAPLogConstants.Markers.INVOKE);

+        this.mLogger.info(ONAPLogConstants.Markers.INVOKE_SYNC + "{"+ invocationID +"}");

         return con;

     }

     public void invokeReturn() {

         // Add the Invoke-return marker and clear the needed MDC

-        this.mLogger.info("INVOKE-RETURN");

+        this.mLogger.info(ONAPLogConstants.Markers.INVOKE_RETURN);

         invokeReturnContext();

     }

 

@@ -313,9 +310,9 @@
      * @param invocationId The invocation ID

      */

     private void invokeContext (String targetEntity, String targetServiceName, String invocationID) {

-        MDC.put(TARGET_ENTITY, defaultToEmpty(targetEntity));

+        MDC.put(ONAPLogConstants.MDCs.TARGET_ENTITY, defaultToEmpty(targetEntity));

         MDC.put(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME, defaultToEmpty(targetServiceName));

-        MDC.put(INVOCATIONID_OUT, invocationID);

+        MDC.put(ONAPLogConstants.MDCs.INVOCATIONID_OUT, invocationID);

         MDC.put(ONAPLogConstants.MDCs.INVOKE_TIMESTAMP,

                 ZonedDateTime.now(ZoneOffset.UTC)

                         .format(DateTimeFormatter.ISO_INSTANT));

@@ -326,8 +323,8 @@
      *

      */

     private void invokeReturnContext () {

-        MDC.remove(TARGET_ENTITY);

+        MDC.remove(ONAPLogConstants.MDCs.TARGET_ENTITY);

         MDC.remove(ONAPLogConstants.MDCs.TARGET_SERVICE_NAME);

-        MDC.remove(INVOCATIONID_OUT);

+        MDC.remove(ONAPLogConstants.MDCs.INVOCATIONID_OUT);

     }

 }

diff --git a/src/main/java/org/onap/clamp/clds/util/ONAPLogConstants.java b/src/main/java/org/onap/clamp/clds/util/ONAPLogConstants.java
new file mode 100644
index 0000000..eea01a3
--- /dev/null
+++ b/src/main/java/org/onap/clamp/clds/util/ONAPLogConstants.java
@@ -0,0 +1,192 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP CLAMP
+ * ================================================================================
+ * 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============================================
+ * ===================================================================
+ *
+ */
+
+package org.onap.clamp.clds.util;
+
+/**
+ * Constants for standard ONAP headers, MDCs, etc.
+ */
+public final class ONAPLogConstants {
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Constructors.
+    //
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+    /**
+     * Hide and forbid construction.
+     */
+    private ONAPLogConstants() {
+        throw new UnsupportedOperationException();
+    }
+
+
+    /**
+     * Marker constants.
+     */
+    public static final class Markers {
+
+        /** Marker reporting invocation. */
+        public static final String INVOKE = "INVOKE";
+
+        /** Marker reporting synchronous invocation. */
+        public static final String INVOKE_RETURN = "INVOKE-RETURN";
+
+        /** Marker reporting synchronous invocation. */
+        public static final String INVOKE_SYNC = "INVOKE-SYNCHRONOUS";
+
+        /** Marker reporting entry into a component. */
+        public static final String ENTRY = "ENTRY";
+
+        /** Marker reporting exit from a component. */
+        public static final String EXIT = "EXIT";
+
+        /**
+         * Hide and forbid construction.
+         */
+        private Markers() {
+            throw new UnsupportedOperationException();
+        }
+    }
+
+    /**
+     * MDC name constants.
+     */
+    public static final class MDCs {
+
+        // Tracing. ////////////////////////////////////////////////////////////
+
+        /** MDC correlating messages for an invocation. */
+        public static final String INVOCATION_ID = "InvocationID";
+
+        /** MDC correlating messages for a logical transaction. */
+        public static final String REQUEST_ID = "RequestID";
+
+        /** MDC recording calling service. */
+        public static final String PARTNER_NAME = "PartnerName";
+
+        /** MDC recording current service. */
+        public static final String SERVICE_NAME = "ServiceName";
+
+        /** MDC recording target service. */
+        public static final String TARGET_SERVICE_NAME = "TargetServiceName";
+
+        /** MDC recording InvocationID Out. */
+        public static final String INVOCATIONID_OUT = "InvocationIDOut";
+
+        /** MDC recording target entity. */
+        public static final String TARGET_ENTITY = "TargetEngity";
+
+        /** MDC recording current service instance. */
+        public static final String INSTANCE_UUID = "InstanceUUID";
+
+        // Network. ////////////////////////////////////////////////////////////
+
+        /** MDC recording caller address. */
+        public static final String CLIENT_IP_ADDRESS = "ClientIPAddress";
+
+        /** MDC recording server address. */
+        public static final String SERVER_FQDN = "ServerFQDN";
+
+        /**
+         * MDC recording timestamp at the start of the current request,
+         * with the same scope as {@link #REQUEST_ID}.
+         *
+         * <p>Open issues:
+         * <ul>
+         *     <ul>Easily confused with {@link #INVOKE_TIMESTAMP}.</ul>
+         *     <ul>No mechanism for propagation between components, e.g. via HTTP headers.</ul>
+         *     <ul>Whatever mechanism we define, it's going to be costly.</ul>
+         * </ul>
+         * </p>
+         * */
+        public static final String ENTRY_TIMESTAMP = "EntryTimestamp";
+
+        /** MDC recording timestamp at the start of the current invocation. */
+        public static final String INVOKE_TIMESTAMP = "InvokeTimestamp";
+
+        // Outcomes. ///////////////////////////////////////////////////////////
+
+        /** MDC reporting outcome code. */
+        public static final String RESPONSE_CODE = "ResponseCode";
+
+        /** MDC reporting outcome description. */
+        public static final String RESPONSE_DESCRIPTION = "ResponseDescription";
+
+        /** MDC reporting outcome error level. */
+        public static final String RESPONSE_SEVERITY = "Severity";
+
+        /** MDC reporting outcome error level. */
+        public static final String RESPONSE_STATUS_CODE = "StatusCode";
+
+        // Unsorted. ///////////////////////////////////////////////////////////
+
+        /**
+         * Hide and forbid construction.
+         */
+        private MDCs() {
+            throw new UnsupportedOperationException();
+        }
+    }
+
+    /**
+     * Header name constants.
+     */
+    public static final class Headers {
+
+        /** HTTP <tt>X-ONAP-RequestID</tt> header. */
+        public static final String REQUEST_ID = "X-ONAP-RequestID";
+
+        /** HTTP <tt>X-ONAP-InvocationID</tt> header. */
+        public static final String INVOCATION_ID = "X-ONAP-InvocationID";
+
+        /** HTTP <tt>X-ONAP-PartnerName</tt> header. */
+        public static final String PARTNER_NAME = "X-ONAP-PartnerName";
+
+        /**
+         * Hide and forbid construction.
+         */
+        private Headers() {
+            throw new UnsupportedOperationException();
+        }
+    }
+
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+    //
+    // Enums.
+    //
+    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+    /**
+     * Response success or not, for setting <tt>StatusCode</tt>.
+     */
+    public enum ResponseStatus {
+
+        /** Success. */
+        COMPLETED,
+
+        /** Not. */
+        ERROR,
+    }
+}
diff --git a/src/main/resources/logback-default.xml b/src/main/resources/logback-default.xml
index 7e8eba5..37cdf76 100644
--- a/src/main/resources/logback-default.xml
+++ b/src/main/resources/logback-default.xml
@@ -10,6 +10,7 @@
 		<property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>
 		<property name="p_thr" value="%thread"/>
 		<property name="defaultPattern" 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="debugPattern" value="%nopexception${p_tim}|${p_lvl}|${p_mdc}|{p_exc}|%msg%n"/>
 
 		<!-- Example evaluator filter applied against console appender -->
 		<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
@@ -20,7 +21,7 @@
 						<level>INFO</level>
 				</filter>
 				<encoder>
-						<pattern>${defaultPattern}</pattern>
+						<pattern>${debugPattern}</pattern>
 				</encoder>
 		</appender>
 
@@ -51,7 +52,7 @@
 				<file>${logDirectory}/debug.log</file>
 				<append>true</append>
 				<encoder>
-						<pattern>${defaultPattern}</pattern>
+						<pattern>${debugPattern}</pattern>
 				</encoder>
 				<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
 					<fileNamePattern>${outputDirectory}/clamp/debug.%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>