aboutsummaryrefslogtreecommitdiffstats
path: root/common-app-api/src/main/java/org/openecomp/sdc/common/ecomplog/EcompLoggerBase.java
blob: 535e8a4204928445fd1ff6ac0aa4978fe89102b9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
package org.openecomp.sdc.common.ecomplog;

import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_SERVER_FQDN;
import static org.openecomp.sdc.common.ecomplog.api.IEcompLogConfiguration.MDC_SERVER_IP_ADDRESS;

import org.openecomp.sdc.common.ecomplog.Enums.LogLevel;
import org.openecomp.sdc.common.ecomplog.api.IEcompLogger;
import org.openecomp.sdc.common.ecomplog.api.IEcompMdcWrapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.slf4j.MDC;
import org.slf4j.Marker;


/**
 * Created by mm288v on 12/27/2017.
 * This class holds the common behavior of all Loger-Typed classes.
 * The Concrete loggers shoudl derive from this one.
 */
public abstract class EcompLoggerBase implements IEcompLogger{
    private static Logger myLogger = LoggerFactory.getLogger(IEcompLogger.class.getName());
    private Marker myMarker;
    IEcompMdcWrapper ecompMdcWrapper;

     EcompLoggerBase(IEcompMdcWrapper ecompMdcWrapper, Marker marker) {
        this.ecompMdcWrapper = ecompMdcWrapper;
         initializeMandatoryFields();
         this.myMarker = marker;
    }

    @Override
    public void log(LogLevel errorLevel, String message) {

        ecompMdcWrapper.validateMandatoryFields();

        if (this instanceof EcompLoggerAudit || this instanceof EcompLoggerMetric) {
            MDC.put(MDC_SERVER_IP_ADDRESS, EcompMDCWrapper.getInstance().getHostAddress());
            MDC.put(MDC_SERVER_FQDN, EcompMDCWrapper.getInstance().getFqdn());
        }

        if (errorLevel.equals(LogLevel.ERROR)) {
            myLogger.error(myMarker, message);
            return;
        }

        if (errorLevel.equals(LogLevel.WARN)) {
            myLogger.warn(myMarker, message);
            return;
        }

        if (errorLevel.equals(LogLevel.INFO)) {
            myLogger.info(myMarker, message);
            return;
        }

        if (errorLevel.equals(LogLevel.DEBUG)) {
            myLogger.info(myMarker, message);
        }
    }

    @Override
    public IEcompLogger clear() {
        ecompMdcWrapper.clear();
        return this;
    }

    @Override
    public IEcompLogger startTimer() {
        ecompMdcWrapper.startTimer();
        return this;
    }

    @Override
    public IEcompLogger setKeyRequestId(String keyRequestId) {
        ecompMdcWrapper.setKeyRequestId(keyRequestId);
        return this;
    }

}