1 package org.openecomp.sdc.common.log.wrappers;
3 import org.apache.commons.lang3.StringUtils;
4 import org.openecomp.sdc.common.api.Constants;
5 import org.openecomp.sdc.common.log.elements.LoggerAudit;
6 import org.openecomp.sdc.common.log.elements.LoggerFactory;
7 import org.openecomp.sdc.common.log.enums.LogLevel;
8 import org.openecomp.sdc.common.log.enums.Severity;
9 import org.openecomp.sdc.common.util.ThreadLocalsHolder;
12 import javax.ws.rs.container.ContainerRequestContext;
13 import javax.ws.rs.core.Response;
17 * Created by dd4296 on 12/19/2017.
19 * audit log for asdc using the log library
20 * this is adapted for filter classes
22 public class LoggerSdcAudit extends LoggerSdcUtilBase {
24 private static String AUDIT_ON = "auditOn";
25 private String className;
26 private final LoggerAudit ecompLoggerAudit;
28 public LoggerSdcAudit(Class<?> clazz) {
29 this.className = clazz.getName();
30 ecompLoggerAudit = LoggerFactory.getMdcLogger(LoggerAudit.class, org.slf4j.LoggerFactory.getLogger(clazz));
33 public void startLog(ContainerRequestContext requestContext) {
34 ecompLoggerAudit.clear()
36 .setPartnerName(getPartnerName(
37 requestContext.getHeaderString("user-agent"),
38 requestContext.getHeaderString("USER_ID"),
39 getUrl(requestContext)))
40 .setServiceName(getServiceName(requestContext))
41 .setKeyRequestId(ThreadLocalsHolder.getUuid());
42 MDC.put(AUDIT_ON, "true");
45 public static boolean isFlowBeingTakenCare() {
46 String auditOn = MDC.get(AUDIT_ON);
47 return !StringUtils.isEmpty(auditOn) && "true".equals(auditOn);
50 //this function clears the MDC data that relevant for this class
51 public void clearMyData(){
52 ecompLoggerAudit.clear();
55 public void log(String remoteAddress,
56 ContainerRequestContext requestContext,
57 Response.StatusType statusInfo,
59 Severity securityLevel,
64 String msg = ecompLoggerAudit.getAuditMessage() == null ?
65 message : ecompLoggerAudit.getAuditMessage();
66 ecompLoggerAudit.stopTimer()
67 .setRemoteHost(remoteAddress)
68 .setResponseCode(convertHttpCodeToErrorCode(statusInfo.getStatusCode()))
69 .setStatusCode(Integer.toString(statusInfo.getStatusCode()))
70 .setResponseDesc(statusInfo.getReasonPhrase())
71 .setInstanceUUID(requestContext.getHeaderString(Constants.X_ECOMP_INSTANCE_ID_HEADER))
72 .setOptServiceInstanceId(requestContext.getHeaderString(Constants.X_ECOMP_SERVICE_ID_HEADER))
73 .setOptClassName(className)
74 .setOptAlertSeverity(securityLevel)
75 .setOptCustomField1(requestContext.getMethod() + ": " + getUrl(requestContext))
76 .setOptCustomField2(Integer.toString(statusInfo.getStatusCode()))
80 log.warn("Failed to write to Audit Log. Original Message: {}", message, e);
83 MDC.put(AUDIT_ON,"false");