Refactoring Consolidation Service
[sdc.git] / common-app-api / src / main / java / org / openecomp / sdc / common / ecomplog / EcompLoggerBase.java
1 package org.openecomp.sdc.common.ecomplog;
2
3 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_SERVER_FQDN;
4 import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_SERVER_IP_ADDRESS;
5
6 import org.openecomp.sdc.common.ecomplog.Enums.LogLevel;
7 import org.openecomp.sdc.common.ecomplog.api.IEcompLogger;
8 import org.openecomp.sdc.common.ecomplog.api.IEcompMdcWrapper;
9 import org.slf4j.Logger;
10 import org.slf4j.LoggerFactory;
11 import org.slf4j.MDC;
12 import org.slf4j.Marker;
13
14
15 /**
16  * Created by mm288v on 12/27/2017.
17  * This class holds the common behavior of all Loger-Typed classes.
18  * The Concrete loggers shoudl derive from this one.
19  */
20 public abstract class EcompLoggerBase implements IEcompLogger{
21     private static Logger myLogger = LoggerFactory.getLogger(IEcompLogger.class.getName());
22     private Marker myMarker;
23     IEcompMdcWrapper ecompMdcWrapper;
24
25      EcompLoggerBase(IEcompMdcWrapper ecompMdcWrapper, Marker marker) {
26         this.ecompMdcWrapper = ecompMdcWrapper;
27          initializeMandatoryFields();
28          this.myMarker = marker;
29     }
30
31     @Override
32     public void log(LogLevel errorLevel, String message) {
33
34         ecompMdcWrapper.validateMandatoryFields();
35
36         if (this instanceof EcompLoggerAudit || this instanceof EcompLoggerMetric) {
37             MDC.put(MDC_SERVER_IP_ADDRESS, EcompMDCWrapper.getInstance().getHostAddress());
38             MDC.put(MDC_SERVER_FQDN, EcompMDCWrapper.getInstance().getFqdn());
39         }
40
41         if (errorLevel.equals(LogLevel.ERROR)) {
42             myLogger.error(myMarker, message);
43             return;
44         }
45
46         if (errorLevel.equals(LogLevel.WARN)) {
47             myLogger.warn(myMarker, message);
48             return;
49         }
50
51         if (errorLevel.equals(LogLevel.INFO)) {
52             myLogger.info(myMarker, message);
53             return;
54         }
55
56         if (errorLevel.equals(LogLevel.DEBUG)) {
57             myLogger.info(myMarker, message);
58         }
59     }
60
61     @Override
62     public IEcompLogger clear() {
63         ecompMdcWrapper.clear();
64         return this;
65     }
66
67     @Override
68     public IEcompLogger startTimer() {
69         ecompMdcWrapper.startTimer();
70         return this;
71     }
72
73     @Override
74     public IEcompLogger setKeyRequestId(String keyRequestId) {
75         ecompMdcWrapper.setKeyRequestId(keyRequestId);
76         return this;
77     }
78
79 }