fix SERVER_FQDN MDC for audit log 80/97880/3
authorEylon Malin <eylon.malin@intl.att.com>
Sun, 3 Nov 2019 06:09:32 +0000 (08:09 +0200)
committerEylon Malin <eylon.malin@intl.att.com>
Mon, 4 Nov 2019 05:52:43 +0000 (05:52 +0000)
Issue-ID: VID-253

Change-Id: I6f4b273d800a6eba735744fbd7bc3e741c1a5e83
Signed-off-by: Eylon Malin <eylon.malin@intl.att.com>
vid-app-common/src/main/java/org/onap/vid/logging/VidLoggingInterceptor.java
vid-automation/src/test/java/org/onap/vid/more/LoggerFormatTest.java

index cdeb207..abc7048 100644 (file)
 
 package org.onap.vid.logging;
 
+import java.net.InetAddress;
+import java.net.UnknownHostException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import org.onap.logging.filter.spring.LoggingInterceptor;
-import org.onap.logging.ref.slf4j.ONAPLogConstants;
+import org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs;
 import org.slf4j.MDC;
 import org.springframework.web.servlet.ModelAndView;
 
@@ -31,16 +33,49 @@ public class VidLoggingInterceptor extends LoggingInterceptor {
 
     static final String INBOUND_INVO_ID = "InboundInvoId";
 
+    private static final String canonicalHostName = getCanonicalName();
+
+    private static String getCanonicalName() {
+        try {
+            return InetAddress.getLocalHost().getCanonicalHostName();
+        } catch (UnknownHostException e) {
+            // YOLO
+            return "";
+        }
+    }
+
     @Override
     protected void additionalPreHandling(HttpServletRequest request)  {
         super.additionalPreHandling(request);
-        MDC.put(INBOUND_INVO_ID, MDC.get(ONAPLogConstants.MDCs.INVOCATION_ID));
+        storeInboundInvocationId();
+    }
+
+    /*
+     * store inbound invocationId for later use in restoreInvocationId
+     */
+    private void storeInboundInvocationId() {
+        MDC.put(INBOUND_INVO_ID, MDC.get(MDCs.INVOCATION_ID));
     }
 
     @Override
     public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
-        MDC.put(ONAPLogConstants.MDCs.INVOCATION_ID, MDC.get(INBOUND_INVO_ID));
+        restoreInvocationId();
+        fixServerFQDN();
         super.postHandle(request, response, handler, modelAndView);
     }
 
+    /*
+     * fix SERVER_FQDN, because EELFLoggerDelegate::setGlobalLoggingContext put wrong value
+     */
+    private void fixServerFQDN() {
+        MDC.put(MDCs.SERVER_FQDN, canonicalHostName);
+    }
+
+    /**
+     * restore invocationId that was overwritten by metrics interceptor
+     */
+    private void restoreInvocationId() {
+        MDC.put(MDCs.INVOCATION_ID, MDC.get(INBOUND_INVO_ID));
+    }
+
 }
index 2f8215a..6638a0e 100644 (file)
@@ -55,7 +55,7 @@ public class LoggerFormatTest extends BaseApiTest {
 
     @Test
     public void validateAudit2019LogsFormat() {
-        validateLogsFormat(LogName.audit2019, "audit-ELS-2019.11", 0.8);
+        validateLogsFormat(LogName.audit2019, "audit-ELS-2019.11");
     }
 
     @Test(enabled = false) // no total-score is returned for error-log