Refactoring Consolidation Service
[sdc.git] / common-app-api / src / main / java / org / openecomp / sdc / common / ecomplog / EcompLoggerAudit.java
1 package org.openecomp.sdc.common.ecomplog;
2
3 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_ALERT_SEVERITY;
4 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_BEGIN_TIMESTAMP;
5 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_CLASS_NAME;
6 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_ELAPSED_TIME;
7 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_END_TIMESTAMP;
8 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_INSTANCE_UUID;
9 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_KEY_REQUEST_ID;
10 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_OPT_FIELD1;
11 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_OPT_FIELD2;
12 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_OPT_FIELD3;
13 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_OPT_FIELD4;
14 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_PARTNER_NAME;
15 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_PROCESS_KEY;
16 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_REMOTE_HOST;
17 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_RESPONSE_CODE;
18 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_RESPONSE_DESC;
19 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_SERVER_FQDN;
20 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_SERVER_IP_ADDRESS;
21 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_SERVICE_INSTANCE_ID;
22 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_SERVICE_NAME;
23 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_STATUS_CODE;
24
25 import org.openecomp.sdc.common.ecomplog.Enums.EcompLoggerErrorCode;
26 import org.openecomp.sdc.common.ecomplog.Enums.LogMarkers;
27 import org.openecomp.sdc.common.ecomplog.Enums.Severity;
28 import org.openecomp.sdc.common.ecomplog.Enums.StatusCode;
29 import org.openecomp.sdc.common.ecomplog.api.IEcompMdcWrapper;
30 import org.slf4j.MDC;
31 import org.slf4j.MarkerFactory;
32
33 public class EcompLoggerAudit extends EcompLoggerBase{
34     private static EcompLoggerAudit instanceLoggerAudit = EcompLoggerFactory.getLogger(EcompLoggerAudit.class);
35
36     EcompLoggerAudit(IEcompMdcWrapper ecompMdcWrapper) {
37         super (ecompMdcWrapper, MarkerFactory.getMarker(LogMarkers.AUDIT_MARKER.text()));
38    }
39
40     public static EcompLoggerAudit getInstance() {
41         return instanceLoggerAudit;
42     }
43
44     @Override
45     public EcompLoggerAudit startTimer() {
46         return (EcompLoggerAudit) super.startTimer();
47     }
48
49     public EcompLoggerAudit stopTimer() {
50         ecompMdcWrapper.stopTimer();
51         return this;
52     }
53
54     // automatic parameter this is optional
55     public EcompLoggerAudit setAutoServerFQDN(String serverFQDN) {
56         ecompMdcWrapper.setAutoServerFQDN(serverFQDN);
57         return this;
58     }
59
60     // automatic parameter this is optional
61     public EcompLoggerAudit setAutoServerIPAddress(String serverIPAddress) {
62         ecompMdcWrapper.setAutoServerIPAddress(serverIPAddress);
63         return this;
64     }
65
66     public EcompLoggerAudit setInstanceUUID(String instanceUUID) {
67         ecompMdcWrapper.setInstanceUUID(instanceUUID);
68         return this;
69     }
70
71     public EcompLoggerAudit setOptClassName(String className) {
72         MDC.put("ClassName", className);
73         return this;
74     }
75
76     public EcompLoggerAudit setOptProcessKey(String processKey) {
77         ecompMdcWrapper.setProcessKey(processKey);
78         return this;
79     }
80
81     public EcompLoggerAudit setOptAlertSeverity(Severity alertSeverity) {
82         ecompMdcWrapper.setAlertSeverity(alertSeverity);
83         return this;
84     }
85
86     // ecomplog optional parameter
87     public EcompLoggerAudit setOptCustomField1(String customField1) {
88         ecompMdcWrapper.setOptCustomField1(customField1);
89         return this;
90     }
91
92     // ecomplog optional parameter
93     public EcompLoggerAudit setOptCustomField2(String customField2) {
94         ecompMdcWrapper.setOptCustomField2(customField2);
95         return this;
96     }
97
98     // ecomplog optional parameter
99     public EcompLoggerAudit setOptCustomField3(String customField3) {
100         ecompMdcWrapper.setOptCustomField3(customField3);
101         return this;
102     }
103
104     public EcompLoggerAudit setOptCustomField4(String customField4) {
105         ecompMdcWrapper.setOptCustomField4(customField4);
106         return this;
107     }
108
109     @Override
110     public EcompLoggerAudit setKeyRequestId(String keyRequestId) {
111         return (EcompLoggerAudit) super.setKeyRequestId(keyRequestId);
112     }
113
114     public EcompLoggerAudit setRemoteHost(String remoteHost) {
115         ecompMdcWrapper.setRemoteHost(remoteHost);
116         return this;
117     }
118
119     public EcompLoggerAudit setServiceName(String serviceName) {
120         ecompMdcWrapper.setServiceName(serviceName);
121         return this;
122     }
123
124     public EcompLoggerAudit setStatusCode(String statusCode) {
125         // status code is either success (COMPLETE) or failure (ERROR) of the request.
126         String respStatus = Integer.parseInt(statusCode) / 100 == 2 ? StatusCode.COMPLETE.getStatusCodeEnum() : StatusCode.ERROR.getStatusCodeEnum();
127         ecompMdcWrapper.setStatusCode(respStatus);
128         return this;
129     }
130
131     public EcompLoggerAudit setPartnerName(String partnerName) {
132         ecompMdcWrapper.setPartnerName(partnerName);
133         return this;
134     }
135
136     public EcompLoggerAudit setResponseCode(EcompLoggerErrorCode responseCode) {
137         ecompMdcWrapper.setResponseCode(responseCode.getErrorCode());
138         return this;
139     }
140
141     public EcompLoggerAudit setResponseDesc(String responseDesc) {
142         ecompMdcWrapper.setResponseDesc(responseDesc);
143         return this;
144     }
145
146     public EcompLoggerAudit setOptServiceInstanceId(String serviceInstanceId) {
147         ecompMdcWrapper.setServiceInstanceId(serviceInstanceId);
148         return this;
149     }
150
151     @Override
152     public EcompLoggerAudit clear() {
153         return (EcompLoggerAudit) super.clear();
154     }
155
156     @Override
157     public void initializeMandatoryFields() {
158
159         ecompMdcWrapper.setMandatoryField(MDC_BEGIN_TIMESTAMP);
160         ecompMdcWrapper.setMandatoryField(MDC_END_TIMESTAMP);
161         ecompMdcWrapper.setMandatoryField(MDC_KEY_REQUEST_ID);
162         ecompMdcWrapper.setMandatoryField(MDC_SERVICE_NAME);
163         ecompMdcWrapper.setMandatoryField(MDC_PARTNER_NAME);
164         ecompMdcWrapper.setMandatoryField(MDC_STATUS_CODE);
165         ecompMdcWrapper.setMandatoryField(MDC_RESPONSE_CODE);
166         ecompMdcWrapper.setMandatoryField(MDC_SERVICE_INSTANCE_ID);
167         ecompMdcWrapper.setMandatoryField(MDC_RESPONSE_DESC);
168         ecompMdcWrapper.setMandatoryField(MDC_ELAPSED_TIME);
169
170         //Theoretically Optional, but practically Mandatory
171         ecompMdcWrapper.setMandatoryField(MDC_SERVER_IP_ADDRESS);
172         ecompMdcWrapper.setMandatoryField(MDC_SERVER_FQDN);
173
174         ecompMdcWrapper.setOptionalField(MDC_INSTANCE_UUID);
175         ecompMdcWrapper.setOptionalField(MDC_ALERT_SEVERITY);
176         ecompMdcWrapper.setOptionalField(MDC_REMOTE_HOST);
177         ecompMdcWrapper.setOptionalField(MDC_CLASS_NAME);
178         ecompMdcWrapper.setOptionalField(MDC_PROCESS_KEY);
179         ecompMdcWrapper.setOptionalField(MDC_OPT_FIELD1);
180         ecompMdcWrapper.setOptionalField(MDC_OPT_FIELD2);
181         ecompMdcWrapper.setOptionalField(MDC_OPT_FIELD3);
182         ecompMdcWrapper.setOptionalField(MDC_OPT_FIELD4);
183     }
184 }