Catalog alignment
[sdc.git] / common-app-logging / src / main / java / org / openecomp / sdc / common / log / elements / LoggerMetric.java
1 package org.openecomp.sdc.common.log.elements;
2
3 import org.openecomp.sdc.common.log.api.ILogFieldsHandler;
4 import org.openecomp.sdc.common.log.enums.LogLevel;
5 import org.openecomp.sdc.common.log.enums.LogMarkers;
6 import org.openecomp.sdc.common.log.enums.Severity;
7 import org.slf4j.Logger;
8 import org.slf4j.MarkerFactory;
9
10 import javax.ws.rs.core.Response;
11 import java.util.ArrayList;
12 import java.util.Arrays;
13 import java.util.List;
14
15 import static org.onap.logging.ref.slf4j.ONAPLogConstants.MDCs.*;
16 import static org.openecomp.sdc.common.log.api.ILogConfiguration.*;
17
18
19 public class LoggerMetric extends LoggerBase {
20     private static ArrayList<String> mandatoryFields = new ArrayList<>(Arrays.asList(
21             INVOKE_TIMESTAMP,
22             MDC_END_TIMESTAMP,
23             REQUEST_ID,
24             SERVICE_NAME,
25             PARTNER_NAME,
26             RESPONSE_CODE,
27             MDC_SERVICE_INSTANCE_ID,
28             RESPONSE_DESCRIPTION,
29             MDC_ELAPSED_TIME,
30             TARGET_ENTITY,
31             MDC_SERVER_IP_ADDRESS,
32             SERVER_FQDN));
33
34     private static ArrayList<String> optionalFields = new ArrayList<>(Arrays.asList(
35             MDC_TARGET_VIRTUAL_ENTITY,
36             TARGET_ENTITY,
37             TARGET_SERVICE_NAME,
38             RESPONSE_STATUS_CODE,
39             INSTANCE_UUID,
40             RESPONSE_SEVERITY,
41             MDC_REMOTE_HOST,
42             CLIENT_IP_ADDRESS,
43             MDC_CLASS_NAME,
44             MDC_PROCESS_KEY,
45             MDC_OPT_FIELD1,
46             MDC_OPT_FIELD2,
47             MDC_OPT_FIELD3,
48             MDC_OPT_FIELD4));
49
50     LoggerMetric(ILogFieldsHandler ecompMdcWrapper, Logger logger) {
51         super(ecompMdcWrapper, MarkerFactory.getMarker(LogMarkers.METRIC_MARKER.text()), logger);
52         //put the remote host and FQDN values from another thread if they are set
53         ecompMdcWrapper.setServerIPAddressInternally();
54         ecompMdcWrapper.setServerFQDNInternally();
55     }
56
57     public void log(Response.StatusType statusInfo,
58                     String className,
59                     LogLevel logLevel,
60                     Severity securityLevel,
61                     String message) {
62         log(statusInfo,className, logLevel, securityLevel, message);
63     }
64
65     @Override
66     public void log(LogLevel logLevel, String message) {
67         setKeyRequestIdIfNotSetYet();
68         log(logLevel, message, (Object) null);
69     }
70
71     @Override
72     public LoggerMetric startTimer() {
73         clear();
74         ecompLogFieldsHandler.startMetricTimer();
75         return this;
76     }
77
78     public LoggerMetric stopTimer() {
79         ecompLogFieldsHandler.stopMetricTimer();
80         return this;
81     }
82
83     @Override
84     public LoggerMetric setKeyRequestId(String keyRequestId) {
85         return (LoggerMetric) super.setKeyRequestId(keyRequestId);
86     }
87
88     @Override
89     public List<String> getMandatoryFields() {
90         return mandatoryFields;
91     }
92
93     @Override
94     public LoggerMetric clear() {
95         ecompLogFieldsHandler.removeTargetEntity();
96         ecompLogFieldsHandler.removeTargetServiceName();
97         ecompLogFieldsHandler.removeResponseCode();
98         ecompLogFieldsHandler.removeResponseDesc();
99         ecompLogFieldsHandler.removeStatusCode();
100         return this;
101     }
102
103
104     public LoggerMetric setInstanceUUID(String instanceUUID) {
105         ecompLogFieldsHandler.setInstanceUUID(instanceUUID);
106         return this;
107     }
108
109
110     public LoggerMetric setOutgoingInvocationId(String out_invocationId) {
111         ecompLogFieldsHandler.setOutgoingInvocationId(out_invocationId);
112         return this;
113     }
114
115     public LoggerMetric setRemoteHost(String remoteHost) {
116         ecompLogFieldsHandler.setRemoteHost(remoteHost);
117         return this;
118     }
119
120     public LoggerMetric setServiceName(String serviceName) {
121         ecompLogFieldsHandler.setServiceName(serviceName);
122         return this;
123     }
124
125     public LoggerMetric setStatusCode(String statusCode) {
126         ecompLogFieldsHandler.setStatusCode(statusCode);
127         return this;
128     }
129
130     public LoggerMetric setPartnerName(String partnerName) {
131         ecompLogFieldsHandler.setPartnerName(partnerName);
132         return this;
133     }
134
135     public LoggerMetric setResponseCode(int responseCode) {
136         ecompLogFieldsHandler.setResponseCode(responseCode);
137         return this;
138     }
139
140     public LoggerMetric setResponseDesc(String responseDesc) {
141         ecompLogFieldsHandler.setResponseDesc(responseDesc);
142         return this;
143     }
144
145     public LoggerMetric setOptServiceInstanceId(String serviceInstanceId) {
146         ecompLogFieldsHandler.setServiceInstanceId(serviceInstanceId);
147         return this;
148     }
149
150     public LoggerMetric setOptClassName(String className) {
151         ecompLogFieldsHandler.setClassName(className);
152         return this;
153     }
154
155     public LoggerMetric setTargetEntity(String targetEntity) {
156         ecompLogFieldsHandler.setTargetEntity(targetEntity);
157         return this;
158     }
159
160     public LoggerMetric setTargetServiceName(String targetServiceName) {
161         ecompLogFieldsHandler.setTargetServiceName(targetServiceName);
162         return this;
163     }
164
165     public LoggerMetric setTargetVirtualEntity(String targetVirtualEntity) {
166         ecompLogFieldsHandler.setTargetVirtualEntity(targetVirtualEntity);
167         return this;
168     }
169
170
171
172
173 }