Added oparent to sdc main
[sdc.git] / common-app-api / src / main / java / org / openecomp / sdc / common / log / elements / LoggerMetric.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.common.log.elements;
22
23 import org.openecomp.sdc.common.log.api.ILogFieldsHandler;
24 import org.openecomp.sdc.common.log.enums.LogLevel;
25 import org.openecomp.sdc.common.log.enums.LogMarkers;
26 import org.openecomp.sdc.common.log.enums.Severity;
27 import org.slf4j.Logger;
28 import org.slf4j.MarkerFactory;
29
30 import javax.ws.rs.core.Response;
31 import java.util.ArrayList;
32 import java.util.Arrays;
33 import java.util.List;
34
35 import static org.openecomp.sdc.common.log.api.ILogConfiguration.*;
36
37
38 public class LoggerMetric extends LoggerBase {
39     private static ArrayList<String> mandatoryFields = new ArrayList<>(Arrays.asList(
40             MDC_METRIC_BEGIN_TIMESTAMP,
41             MDC_END_TIMESTAMP,
42             MDC_KEY_REQUEST_ID,
43             MDC_SERVICE_NAME,
44             MDC_PARTNER_NAME,
45             MDC_STATUS_CODE,
46             MDC_RESPONSE_CODE,
47             MDC_SERVICE_INSTANCE_ID,
48             MDC_RESPONSE_DESC,
49             MDC_ELAPSED_TIME,
50             MDC_TARGET_ENTITY,
51             MDC_TARGET_SERVICE_NAME,
52             MDC_TARGET_VIRTUAL_ENTITY,
53             MDC_SERVER_IP_ADDRESS,
54             MDC_SERVER_FQDN));
55
56     private static ArrayList<String> optionalFields = new ArrayList<>(Arrays.asList(
57             MDC_INSTANCE_UUID,
58             MDC_ALERT_SEVERITY,
59             MDC_REMOTE_HOST,
60             MDC_CLASS_NAME,
61             MDC_PROCESS_KEY,
62             MDC_OPT_FIELD1,
63             MDC_OPT_FIELD2,
64             MDC_OPT_FIELD3,
65             MDC_OPT_FIELD4));
66
67     LoggerMetric(ILogFieldsHandler ecompMdcWrapper, Logger logger) {
68         super(ecompMdcWrapper, MarkerFactory.getMarker(LogMarkers.METRIC_MARKER.text()), logger);
69         //put the remote host and FQDN values from another thread if they are set
70         ecompMdcWrapper.setServerIPAddressInternally();
71         ecompMdcWrapper.setServerFQDNInternally();
72     }
73
74     public void log(Response.StatusType statusInfo,
75                     String className,
76                     LogLevel logLevel,
77                     Severity securityLevel,
78                     String message) {
79         log(statusInfo,className, logLevel, securityLevel, message);
80     }
81
82     @Override
83     public void log(LogLevel logLevel, String message) {
84         setKeyRequestIdIfNotSetYet();
85         log(logLevel, message, (Object) null);
86     }
87
88     @Override
89     public LoggerMetric startTimer() {
90         clear();
91         ecompLogFieldsHandler.startMetricTimer();
92         return this;
93     }
94
95     public LoggerMetric stopTimer() {
96         ecompLogFieldsHandler.stopMetricTimer();
97         return this;
98     }
99
100     @Override
101     public LoggerMetric setKeyRequestId(String keyRequestId) {
102         return (LoggerMetric) super.setKeyRequestId(keyRequestId);
103     }
104
105     @Override
106     public List<String> getMandatoryFields() {
107         return mandatoryFields;
108     }
109
110     @Override
111     public LoggerMetric clear() {
112         ecompLogFieldsHandler.removeTargetEntity();
113         ecompLogFieldsHandler.removeTargetServiceName();
114         ecompLogFieldsHandler.removeResponseCode();
115         ecompLogFieldsHandler.removeResponseDesc();
116         ecompLogFieldsHandler.removeStatusCode();
117         return this;
118     }
119
120     // automatic parameter this is optional
121     public LoggerMetric setAutoServerFQDN(String serverFQDN) {
122         ecompLogFieldsHandler.setServerFQDN(serverFQDN);
123         return this;
124     }
125
126     // automatic parameter this is optional
127     public LoggerMetric setAutoServerIPAddress(String serverIPAddress) {
128         ecompLogFieldsHandler.setServerIPAddress(serverIPAddress);
129         return this;
130     }
131
132     public LoggerMetric setInstanceUUID(String instanceUUID) {
133         ecompLogFieldsHandler.setInstanceUUID(instanceUUID);
134         return this;
135     }
136
137     // log optional parameter
138     public LoggerMetric setOptProcessKey(String processKey) {
139         ecompLogFieldsHandler.setProcessKey(processKey);
140         return this;
141     }
142
143     // log optional parameter
144     public LoggerMetric setOptAlertSeverity(Severity alertSeverity) {
145         ecompLogFieldsHandler.setAlertSeverity(alertSeverity);
146         return this;
147     }
148
149     // log optional parameter
150     public LoggerMetric setOptCustomField1(String customField1) {
151         ecompLogFieldsHandler.setOptCustomField1(customField1);
152         return this;
153     }
154
155     // log optional parameter
156     public LoggerMetric setOptCustomField2(String customField2) {
157         ecompLogFieldsHandler.setOptCustomField2(customField2);
158         return this;
159     }
160
161     // log optional parameter
162     public LoggerMetric setOptCustomField3(String customField3) {
163         ecompLogFieldsHandler.setOptCustomField3(customField3);
164         return this;
165     }
166
167     // log optional parameter
168     public LoggerMetric setOptCustomField4(String customField4) {
169         ecompLogFieldsHandler.setOptCustomField4(customField4);
170         return this;
171     }
172
173     public LoggerMetric setRemoteHost(String remoteHost) {
174         ecompLogFieldsHandler.setRemoteHost(remoteHost);
175         return this;
176     }
177
178     public LoggerMetric setServiceName(String serviceName) {
179         ecompLogFieldsHandler.setServiceName(serviceName);
180         return this;
181     }
182
183     public LoggerMetric setStatusCode(String statusCode) {
184         ecompLogFieldsHandler.setStatusCode(statusCode);
185         return this;
186     }
187
188     public LoggerMetric setPartnerName(String partnerName) {
189         ecompLogFieldsHandler.setPartnerName(partnerName);
190         return this;
191     }
192
193     public LoggerMetric setResponseCode(int responseCode) {
194         ecompLogFieldsHandler.setResponseCode(responseCode);
195         return this;
196     }
197
198     public LoggerMetric setResponseDesc(String responseDesc) {
199         ecompLogFieldsHandler.setResponseDesc(responseDesc);
200         return this;
201     }
202
203     public LoggerMetric setOptServiceInstanceId(String serviceInstanceId) {
204         ecompLogFieldsHandler.setServiceInstanceId(serviceInstanceId);
205         return this;
206     }
207
208     public LoggerMetric setOptClassName(String className) {
209         ecompLogFieldsHandler.setClassName(className);
210         return this;
211     }
212
213     public LoggerMetric setTargetEntity(String targetEntity) {
214         ecompLogFieldsHandler.setTargetEntity(targetEntity);
215         return this;
216     }
217
218     public LoggerMetric setTargetServiceName(String targetServiceName) {
219         ecompLogFieldsHandler.setTargetServiceName(targetServiceName);
220         return this;
221     }
222
223     public LoggerMetric setTargetVirtualEntity(String targetVirtualEntity) {
224         ecompLogFieldsHandler.setTargetVirtualEntity(targetVirtualEntity);
225         return this;
226     }
227
228
229
230
231 }