re base code
[sdc.git] / common-app-api / 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.openecomp.sdc.common.log.api.ILogConfiguration.*;
16
17
18 public class LoggerMetric extends LoggerBase {
19     private static ArrayList<String> mandatoryFields = new ArrayList<>(Arrays.asList(
20             MDC_METRIC_BEGIN_TIMESTAMP,
21             MDC_END_TIMESTAMP,
22             MDC_KEY_REQUEST_ID,
23             MDC_SERVICE_NAME,
24             MDC_PARTNER_NAME,
25             MDC_STATUS_CODE,
26             MDC_RESPONSE_CODE,
27             MDC_SERVICE_INSTANCE_ID,
28             MDC_RESPONSE_DESC,
29             MDC_ELAPSED_TIME,
30             MDC_TARGET_ENTITY,
31             MDC_TARGET_SERVICE_NAME,
32             MDC_TARGET_VIRTUAL_ENTITY,
33             MDC_SERVER_IP_ADDRESS,
34             MDC_SERVER_FQDN));
35
36     private static ArrayList<String> optionalFields = new ArrayList<>(Arrays.asList(
37             MDC_INSTANCE_UUID,
38             MDC_ALERT_SEVERITY,
39             MDC_REMOTE_HOST,
40             MDC_CLASS_NAME,
41             MDC_PROCESS_KEY,
42             MDC_OPT_FIELD1,
43             MDC_OPT_FIELD2,
44             MDC_OPT_FIELD3,
45             MDC_OPT_FIELD4));
46
47     LoggerMetric(ILogFieldsHandler ecompMdcWrapper, Logger logger) {
48         super(ecompMdcWrapper, MarkerFactory.getMarker(LogMarkers.METRIC_MARKER.text()), logger);
49         //put the remote host and FQDN values from another thread if they are set
50         ecompMdcWrapper.setServerIPAddressInternally();
51         ecompMdcWrapper.setServerFQDNInternally();
52     }
53
54     public void log(Response.StatusType statusInfo,
55                     String className,
56                     LogLevel logLevel,
57                     Severity securityLevel,
58                     String message) {
59         log(statusInfo,className, logLevel, securityLevel, message);
60     }
61
62     @Override
63     public void log(LogLevel logLevel, String message) {
64         setKeyRequestIdIfNotSetYet();
65         log(logLevel, message, (Object) null);
66     }
67
68     @Override
69     public LoggerMetric startTimer() {
70         clear();
71         ecompLogFieldsHandler.startMetricTimer();
72         return this;
73     }
74
75     public LoggerMetric stopTimer() {
76         ecompLogFieldsHandler.stopMetricTimer();
77         return this;
78     }
79
80     @Override
81     public LoggerMetric setKeyRequestId(String keyRequestId) {
82         return (LoggerMetric) super.setKeyRequestId(keyRequestId);
83     }
84
85     @Override
86     public List<String> getMandatoryFields() {
87         return mandatoryFields;
88     }
89
90     @Override
91     public LoggerMetric clear() {
92         ecompLogFieldsHandler.removeTargetEntity();
93         ecompLogFieldsHandler.removeTargetServiceName();
94         ecompLogFieldsHandler.removeResponseCode();
95         ecompLogFieldsHandler.removeResponseDesc();
96         ecompLogFieldsHandler.removeStatusCode();
97         return this;
98     }
99
100     // automatic parameter this is optional
101     public LoggerMetric setAutoServerFQDN(String serverFQDN) {
102         ecompLogFieldsHandler.setServerFQDN(serverFQDN);
103         return this;
104     }
105
106     // automatic parameter this is optional
107     public LoggerMetric setAutoServerIPAddress(String serverIPAddress) {
108         ecompLogFieldsHandler.setServerIPAddress(serverIPAddress);
109         return this;
110     }
111
112     public LoggerMetric setInstanceUUID(String instanceUUID) {
113         ecompLogFieldsHandler.setInstanceUUID(instanceUUID);
114         return this;
115     }
116
117     // log optional parameter
118     public LoggerMetric setOptProcessKey(String processKey) {
119         ecompLogFieldsHandler.setProcessKey(processKey);
120         return this;
121     }
122
123     // log optional parameter
124     public LoggerMetric setOptAlertSeverity(Severity alertSeverity) {
125         ecompLogFieldsHandler.setAlertSeverity(alertSeverity);
126         return this;
127     }
128
129     // log optional parameter
130     public LoggerMetric setOptCustomField1(String customField1) {
131         ecompLogFieldsHandler.setOptCustomField1(customField1);
132         return this;
133     }
134
135     // log optional parameter
136     public LoggerMetric setOptCustomField2(String customField2) {
137         ecompLogFieldsHandler.setOptCustomField2(customField2);
138         return this;
139     }
140
141     // log optional parameter
142     public LoggerMetric setOptCustomField3(String customField3) {
143         ecompLogFieldsHandler.setOptCustomField3(customField3);
144         return this;
145     }
146
147     // log optional parameter
148     public LoggerMetric setOptCustomField4(String customField4) {
149         ecompLogFieldsHandler.setOptCustomField4(customField4);
150         return this;
151     }
152
153     public LoggerMetric setRemoteHost(String remoteHost) {
154         ecompLogFieldsHandler.setRemoteHost(remoteHost);
155         return this;
156     }
157
158     public LoggerMetric setServiceName(String serviceName) {
159         ecompLogFieldsHandler.setServiceName(serviceName);
160         return this;
161     }
162
163     public LoggerMetric setStatusCode(String statusCode) {
164         ecompLogFieldsHandler.setStatusCode(statusCode);
165         return this;
166     }
167
168     public LoggerMetric setPartnerName(String partnerName) {
169         ecompLogFieldsHandler.setPartnerName(partnerName);
170         return this;
171     }
172
173     public LoggerMetric setResponseCode(int responseCode) {
174         ecompLogFieldsHandler.setResponseCode(responseCode);
175         return this;
176     }
177
178     public LoggerMetric setResponseDesc(String responseDesc) {
179         ecompLogFieldsHandler.setResponseDesc(responseDesc);
180         return this;
181     }
182
183     public LoggerMetric setOptServiceInstanceId(String serviceInstanceId) {
184         ecompLogFieldsHandler.setServiceInstanceId(serviceInstanceId);
185         return this;
186     }
187
188     public LoggerMetric setOptClassName(String className) {
189         ecompLogFieldsHandler.setClassName(className);
190         return this;
191     }
192
193     public LoggerMetric setTargetEntity(String targetEntity) {
194         ecompLogFieldsHandler.setTargetEntity(targetEntity);
195         return this;
196     }
197
198     public LoggerMetric setTargetServiceName(String targetServiceName) {
199         ecompLogFieldsHandler.setTargetServiceName(targetServiceName);
200         return this;
201     }
202
203     public LoggerMetric setTargetVirtualEntity(String targetVirtualEntity) {
204         ecompLogFieldsHandler.setTargetVirtualEntity(targetVirtualEntity);
205         return this;
206     }
207
208
209
210
211 }