Add Request ID in Common Logging
[clamp.git] / src / main / java / org / onap / clamp / clds / util / LoggingUtils.java
index 8ceaa3d..b501b2d 100644 (file)
@@ -29,27 +29,32 @@ import java.util.Date;
 import java.util.TimeZone;\r
 import java.util.UUID;\r
 \r
-import org.jboss.logging.MDC;\r
+import org.apache.log4j.MDC;\r
 \r
+/**\r
+ * This class handles the special info that appear in the log, like RequestID,\r
+ * time context, ...\r
+ *\r
+ */\r
 public class LoggingUtils {\r
 \r
     /**\r
      * Set request related logging variables in thread local data via MDC\r
-     *\r
+     * \r
      * @param service\r
      *            Service Name of API (ex. "PUT template")\r
      * @param partner\r
      *            Partner name (client or user invoking API)\r
      */\r
     public static void setRequestContext(String service, String partner) {\r
-        MDC.put("RequestId",  UUID.randomUUID().toString());\r
+        MDC.put("RequestId", UUID.randomUUID().toString());\r
         MDC.put("ServiceName", service);\r
         MDC.put("PartnerName", partner);\r
     }\r
 \r
     /**\r
-     * Set time related logging variables in thread local data via MDC\r
-     *\r
+     * Set time related logging variables in thread local data via MDC.\r
+     * \r
      * @param beginTimeStamp\r
      *            Start time\r
      * @param endTimeStamp\r
@@ -72,7 +77,7 @@ public class LoggingUtils {
     }\r
 \r
     /**\r
-     * Set response related logging variables in thread local data via MDC\r
+     * Set response related logging variables in thread local data via MDC.\r
      * \r
      * @param code\r
      *            Response code ("0" indicates success)\r
@@ -102,7 +107,7 @@ public class LoggingUtils {
     }\r
 \r
     /**\r
-     * Set error related logging variables in thread local data via MDC\r
+     * Set error related logging variables in thread local data via MDC.\r
      * \r
      * @param code\r
      *            Error code\r
@@ -121,4 +126,22 @@ public class LoggingUtils {
         return df.format(timeStamp);\r
     }\r
 \r
+    /**\r
+     * Get a previously stored RequestID for the thread local data via MDC. If\r
+     * one was not previously stored, generate one, store it, and return that\r
+     * one.\r
+     * \r
+     * @return A string with the request ID\r
+     */\r
+    public static String getRequestId() {\r
+        String reqid;\r
+\r
+        reqid = (String) MDC.get("RequestID");\r
+        if (reqid == null || reqid.isEmpty()) {\r
+            reqid = UUID.randomUUID().toString();\r
+            MDC.put("RequestId", reqid);\r
+        }\r
+        return reqid;\r
+    }\r
+\r
 }\r