1 package org.openecomp.sdc.common.log.wrappers;
3 import org.apache.commons.lang3.StringUtils;
4 import org.onap.logging.ref.slf4j.ONAPLogConstants;
5 import org.openecomp.sdc.common.log.enums.ConstantsLogging;
6 import org.openecomp.sdc.common.log.elements.LoggerAudit;
7 import org.openecomp.sdc.common.log.elements.LoggerFactory;
8 import org.openecomp.sdc.common.log.enums.EcompLoggerErrorCode;
9 import org.openecomp.sdc.common.log.enums.LogLevel;
10 import org.openecomp.sdc.common.log.enums.Severity;
11 import org.openecomp.sdc.common.log.utils.LoggingThreadLocalsHolder;
13 import org.slf4j.Marker;
15 import javax.ws.rs.container.ContainerRequestContext;
16 import javax.ws.rs.core.Response;
17 import java.util.UUID;
21 * Created by dd4296 on 12/19/2017.
23 * audit log for asdc using the log library
24 * this is adapted for filter classes
26 public class LoggerSdcAudit extends LoggerSdcUtilBase {
28 private static String AUDIT_ON = "auditOn";
29 private String className;
30 private final LoggerAudit ecompLoggerAudit;
32 public LoggerSdcAudit(Class<?> clazz) {
33 this.className = clazz.getName();
34 ecompLoggerAudit = LoggerFactory.getMdcLogger(LoggerAudit.class, org.slf4j.LoggerFactory.getLogger(clazz));
37 public void startLog(ContainerRequestContext requestContext) {
38 ecompLoggerAudit.clear()
40 .setPartnerName(getPartnerName(
41 requestContext.getHeaderString("user-agent"),
42 requestContext.getHeaderString("USER_ID"),
43 getUrl(requestContext),
44 requestContext.getHeaderString("X-ONAP-PartnerName")))
45 .setServiceName(getServiceName(requestContext))
46 .setKeyRequestId(LoggingThreadLocalsHolder.getUuid())
47 .setKeyInvocationId(UUID.randomUUID().toString());
48 MDC.put(AUDIT_ON, "true");
51 public void startAuditFetchLog(String partnerName, String serviceName) {
52 ecompLoggerAudit.clear()
54 .setPartnerName(partnerName)
55 .setServiceName(serviceName)
56 .setOptClassName(serviceName);
57 MDC.put(AUDIT_ON, "true");
60 public static boolean isFlowBeingTakenCare() {
61 String auditOn = MDC.get(AUDIT_ON);
62 return !StringUtils.isEmpty(auditOn) && "true".equals(auditOn);
65 //this function clears the MDC data that relevant for this class
66 public void clearMyData(){
67 ecompLoggerAudit.clear();
70 public void logExit(String remoteAddress,
71 ContainerRequestContext requestContext,
72 Response.StatusType statusInfo,
74 Severity securityLevel,
80 String msg = ecompLoggerAudit.getAuditMessage() == null ?
81 message : ecompLoggerAudit.getAuditMessage();
82 ecompLoggerAudit.stopTimer()
83 .setRemoteHost(remoteAddress)
84 .setResponseCode(convertHttpCodeToErrorCode(statusInfo.getStatusCode()))
85 .setStatusCodeByResponseCode(Integer.toString(statusInfo.getStatusCode()))
86 .setResponseDesc(statusInfo.getReasonPhrase())
87 .setInstanceUUID(requestContext.getHeaderString(ConstantsLogging.X_ECOMP_INSTANCE_ID_HEADER))
88 .setOptServiceInstanceId(requestContext.getHeaderString(ConstantsLogging.X_ECOMP_SERVICE_ID_HEADER))
89 .setOptClassName(className)
90 .setOptAlertSeverity(securityLevel)
91 .log(marker, logLevel, msg);
94 log.warn("Failed to write to Audit Log. Original Message: {}", message, e);
97 MDC.put(AUDIT_ON,"false");
101 public void logEntry(String remoteAddress,
102 ContainerRequestContext requestContext,
104 Severity securityLevel,
110 String msg = ecompLoggerAudit.getAuditMessage() == null ?
111 message : ecompLoggerAudit.getAuditMessage();
112 ecompLoggerAudit.stopTimer()
113 .setRemoteHost(remoteAddress)
114 .setResponseCode(EcompLoggerErrorCode.SUCCESS)
115 .setStatusCode(ONAPLogConstants.ResponseStatus.INPROGRESS.name())
117 .setInstanceUUID(requestContext.getHeaderString(ConstantsLogging.X_ECOMP_INSTANCE_ID_HEADER))
118 .setOptServiceInstanceId(requestContext.getHeaderString(ConstantsLogging.X_ECOMP_SERVICE_ID_HEADER))
119 .setOptClassName(className)
120 .setOptAlertSeverity(securityLevel)
121 .log(marker, logLevel, msg);
123 catch (Exception e) {
124 log.warn("Failed to write to Audit Log. Original Message: {}", message, e);
127 MDC.put(AUDIT_ON,"false");
131 public void logEntry(LogLevel logLevel,
132 Severity securityLevel,
139 String msg = ecompLoggerAudit.getAuditMessage() == null ?
140 message : ecompLoggerAudit.getAuditMessage();
141 ecompLoggerAudit.stopTimer()
142 .setKeyRequestId(requestId)
143 .setResponseCode(EcompLoggerErrorCode.SUCCESS)
144 .setStatusCode(ONAPLogConstants.ResponseStatus.COMPLETE.name())
146 .setOptAlertSeverity(securityLevel)
147 .log(marker, logLevel, msg);
149 catch (Exception e) {
150 log.warn("Failed to write to Audit Log. Original Message: {}", message, e);
153 MDC.put(AUDIT_ON,"false");