Refactoring Consolidation Service
[sdc.git] / common-app-api / src / main / java / org / openecomp / sdc / common / ecomplogwrapper / EcompLoggerSdcMetric.java
1 package org.openecomp.sdc.common.ecomplogwrapper;
2
3 import javax.servlet.http.HttpServletRequest;
4 import javax.ws.rs.container.ContainerRequestContext;
5 import javax.ws.rs.core.Response;
6
7 import org.openecomp.sdc.common.api.Constants;
8 import org.openecomp.sdc.common.ecomplog.EcompLoggerAudit;
9 import org.openecomp.sdc.common.ecomplog.EcompLoggerMetric;
10 import org.openecomp.sdc.common.ecomplog.Enums.LogLevel;
11 import org.openecomp.sdc.common.ecomplog.Enums.Severity;
12 import org.openecomp.sdc.common.util.ThreadLocalsHolder;
13
14 /**
15  * Created by dd4296 on 12/20/2017.
16  *
17  * METRIC log for asdc using the ecomplog library
18  */
19 public class EcompLoggerSdcMetric extends EcompLoggerSdcUtilBase {
20
21     private String className;
22
23     public EcompLoggerSdcMetric(String className) {
24         this.className = className;
25     }
26
27     public void startLog() {
28         EcompLoggerAudit
29                 .getInstance()
30                 .clear()
31                 .startTimer();
32     }
33
34     public void writeToLog(HttpServletRequest sr,
35                            ContainerRequestContext requestContext,
36                            Response.StatusType statusInfo,
37                            LogLevel errorLevel,
38                            Severity securityLevel,
39                            String targetEntity,
40                            String targetServiceName,
41                            String targetVirtualEntity,
42                            String message) {
43
44         EcompLoggerMetric.getInstance()
45                 .stopTimer()
46                 .setRemoteHost(sr.getRemoteAddr())
47                 .setServiceName(getServiceName(requestContext))
48                 .setResponseCode(statusInfo.getStatusCode())
49                 .setStatusCode(Integer.toString(statusInfo.getStatusCode()))
50                 .setResponseDesc(statusInfo.getReasonPhrase())
51                 .setKeyRequestId(ThreadLocalsHolder.getUuid())
52
53                 .setPartnerName(getPartnerName(
54                         requestContext.getHeaderString("user-agent"),
55                         requestContext.getHeaderString("USER_ID"),
56                         getUrl(requestContext)))
57
58                 .setInstanceUUID(requestContext.getHeaderString(Constants.X_ECOMP_INSTANCE_ID_HEADER))
59
60                 .setOptServiceInstanceId(requestContext.getHeaderString(Constants.X_ECOMP_SERVICE_ID_HEADER))
61                 .setOptClassName(className)
62                 .setOptAlertSeverity(securityLevel)
63                 .setOptCustomField1(getUrl(requestContext) + "/" + requestContext.getMethod())
64
65                 .setTargetEntity(targetEntity)
66                 .setTargetServiceName(targetServiceName)
67                 .setTargetVirtualEntity(targetVirtualEntity)
68
69                 .log(errorLevel, message);
70     }
71 }