aboutsummaryrefslogtreecommitdiffstats
path: root/common-logging/src/main/java/org/onap/policy/common/logging/eelf
diff options
context:
space:
mode:
Diffstat (limited to 'common-logging/src/main/java/org/onap/policy/common/logging/eelf')
-rw-r--r--common-logging/src/main/java/org/onap/policy/common/logging/eelf/Configuration.java38
-rw-r--r--common-logging/src/main/java/org/onap/policy/common/logging/eelf/DroolsPDPMDCInfo.java4
-rw-r--r--common-logging/src/main/java/org/onap/policy/common/logging/eelf/ErrorCodeMap.java145
-rw-r--r--common-logging/src/main/java/org/onap/policy/common/logging/eelf/EventData.java47
-rw-r--r--common-logging/src/main/java/org/onap/policy/common/logging/eelf/EventTrackInfo.java19
-rw-r--r--common-logging/src/main/java/org/onap/policy/common/logging/eelf/EventTrackInfoHandler.java6
-rw-r--r--common-logging/src/main/java/org/onap/policy/common/logging/eelf/MDCInfo.java5
-rw-r--r--common-logging/src/main/java/org/onap/policy/common/logging/eelf/MessageCodes.java228
-rw-r--r--common-logging/src/main/java/org/onap/policy/common/logging/eelf/PolicyLogger.java2825
9 files changed, 1699 insertions, 1618 deletions
diff --git a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/Configuration.java b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/Configuration.java
index 9d550c35..0752b188 100644
--- a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/Configuration.java
+++ b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/Configuration.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP-Logging
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,77 +24,59 @@ package org.onap.policy.common.logging.eelf;
public interface Configuration extends com.att.eelf.configuration.Configuration {
/**
- * The Date-time of the start of a transaction
+ * The Date-time of the start of a transaction.
*/
String BEGIN_TIME_STAMP = "BeginTimestamp";
/**
- * The Date-time of the end of transaction
+ * The Date-time of the end of transaction.
*/
String END_TIME_STAMP = "EndTimestamp";
/**
- * Externally advertised API invoked by clients of this component
+ * Externally advertised API invoked by clients of this component.
*/
String SERVICE_NAME = "ServiceName";
/**
- * Client or user invoking the API
+ * Client or user invoking the API.
*/
String PARTNER_NAME = "PartnerName";
- /**
- * Target Entity
- */
String TARGET_ENTITY = "TargetEntity";
- /**
- * Target service name
- */
String TARGET_SERVICE_NAME = "TargetServiceName";
/**
- * High level success or failure (COMPLETE or ERROR)
+ * High level success or failure (COMPLETE or ERROR).
*/
String STATUS_CODE = "StatusCode";
/**
- * Application specific response code
+ * Application specific response code.
*/
String RESPONSE_CODE = "ResponseCode";
/**
- * Human readable description of the application specific response code
+ * Human readable description of the application specific response code.
*/
String RESPONSE_DESCRIPTION = "ResponseDescription";
/**
- * Externally advertised API invoked by clients of this component
+ * Externally advertised API invoked by clients of this component.
*/
String ELAPSED_TIME = "ElapsedTime";
/**
- * High level failure (ERROR)
+ * High level failure (ERROR).
*/
String ERROR_CATEGORY = "ErrorCategory";
- /**
- * Error Code
- */
String ERROR_CODE = "ErrorCode";
- /**
- * Error Description
- */
String ERROR_DESCRIPTION = "ErrorDescription";
- /**
- * Class name
- */
String CLASS_NAME = "ClassName";
- /**
- * Server name
- */
String SERVER_NAME = "ServerName";
}
diff --git a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/DroolsPDPMDCInfo.java b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/DroolsPDPMDCInfo.java
index ae4cc929..0c6c13ba 100644
--- a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/DroolsPDPMDCInfo.java
+++ b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/DroolsPDPMDCInfo.java
@@ -41,7 +41,9 @@ public class DroolsPDPMDCInfo implements MDCInfo {
}
/**
- * @return the instance of ConcurrentHashMap
+ * Get the MMDC Info
+ *
+ * @return the instance of ConcurrentHashMap.
*/
@Override
public ConcurrentMap<String, String> getMDCInfo() {
diff --git a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/ErrorCodeMap.java b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/ErrorCodeMap.java
index 845c5caf..4ae4068c 100644
--- a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/ErrorCodeMap.java
+++ b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/ErrorCodeMap.java
@@ -23,85 +23,98 @@ package org.onap.policy.common.logging.eelf;
import java.util.EnumMap;
/**
- *
- * ErrorCodeMap contains a HashMap of ErrorCodeInfo (error code and error description)
- *
+ * ErrorCodeMap contains a HashMap of ErrorCodeInfo (error code and error description).
*/
public class ErrorCodeMap {
private static final EnumMap<MessageCodes, ErrorCodeInfo> hm = new EnumMap<>(MessageCodes.class);
-
+
private static final String ERROR_PERMISSIONS = "POLICY-100E";
- private static final String ERROR_PERMISSIONS_DESCRIPTION = "This is a Permissions Error. Please check the error message for detail information";
-
- private static final String ERROR_SCHEMA_INVALID = "POLICY-400E";
- private static final String ERROR_SCHEMA_INVALID_DESCRIPTION = "This is an Invalid Schema Error. Please check the error message for detail information";
-
+ private static final String ERROR_PERMISSIONS_DESCRIPTION =
+ "This is a Permissions Error. Please check the error message for detail information";
+
+ private static final String ERROR_SCHEMA_INVALID = "POLICY-400E";
+ private static final String ERROR_SCHEMA_INVALID_DESCRIPTION =
+ "This is an Invalid Schema Error. Please check the error message for detail information";
+
private static final String UPDATE_ERROR = "POLICY-502E";
- private static final String UPDATE_ERROR_DESCRIPTION = "This is an updating error. Please check the error message for detail information";
-
- private static final String EXCEPTION_ERROR_CODE = "POLICY-503E";
- private static final String EXCEPTION_ERROR_DESCRIPTION = "This is an exception error message during the process. Please check the error message for detail information";
-
- private static final String MISS_PROPERTY_ERROR = "POLICY-504E";
- private static final String MISS_PROPERTY_ERROR_DESCRIPTION = "This is an error of missing properties. Please check the error message for detail information";
-
+ private static final String UPDATE_ERROR_DESCRIPTION =
+ "This is an updating error. Please check the error message for detail information";
+
+ private static final String EXCEPTION_ERROR_CODE = "POLICY-503E";
+ private static final String EXCEPTION_ERROR_DESCRIPTION =
+ "This is an exception error message during the process. Please check the error message for detail "
+ + "information";
+
+ private static final String MISS_PROPERTY_ERROR = "POLICY-504E";
+ private static final String MISS_PROPERTY_ERROR_DESCRIPTION =
+ "This is an error of missing properties. Please check the error message for detail information";
+
private static final String GENERAL_ERROR_CODE = "POLICY-515E";
- private static final String GENERAL_ERROR_DESCRIPTION = "This is a general error message during the process. Please check the error message for detail information";
-
+ private static final String GENERAL_ERROR_DESCRIPTION =
+ "This is a general error message during the process. Please check the error message for detail information";
+
private static final String ERROR_SYSTEM_ERROR = "POLICY-516E";
- private static final String ERROR_SYSTEM_ERROR_DESCRIPTION = "This is a System Error. Please check the error message for detail information";
-
- private static final String ERROR_DATA_ISSUE = "POLICY-517E";
- private static final String ERROR_DATA_ISSUE_DESCRIPTION = "This is a Data Issue Error. Please check the error message for detail information";
-
- private static final String ERROR_PROCESS_FLOW = "POLICY-518E";
- private static final String ERROR_PROCESS_FLOW_DESCRIPTION = "This is a Process Flow Error. Please check the error message for detail information";
-
- private static final String ERROR_UNKNOWN = "POLICY-519E";
- private static final String ERROR_UNKNOWN_DESCRIPTION = "This is an Unknown Error. Please check the error message for detail information";
-
- private static final String ERROR_AUDIT = "POLICY-520E";
- private static final String ERROR_AUDIT_DESCRIPTION = "This is an audit Error. Please check the error message for detail information";
-
+ private static final String ERROR_SYSTEM_ERROR_DESCRIPTION =
+ "This is a System Error. Please check the error message for detail information";
+
+ private static final String ERROR_DATA_ISSUE = "POLICY-517E";
+ private static final String ERROR_DATA_ISSUE_DESCRIPTION =
+ "This is a Data Issue Error. Please check the error message for detail information";
+
+ private static final String ERROR_PROCESS_FLOW = "POLICY-518E";
+ private static final String ERROR_PROCESS_FLOW_DESCRIPTION =
+ "This is a Process Flow Error. Please check the error message for detail information";
+
+ private static final String ERROR_UNKNOWN = "POLICY-519E";
+ private static final String ERROR_UNKNOWN_DESCRIPTION =
+ "This is an Unknown Error. Please check the error message for detail information";
+
+ private static final String ERROR_AUDIT = "POLICY-520E";
+ private static final String ERROR_AUDIT_DESCRIPTION =
+ "This is an audit Error. Please check the error message for detail information";
+
static {
- hm.put(MessageCodes.EXCEPTION_ERROR, new ErrorCodeInfo(EXCEPTION_ERROR_CODE, EXCEPTION_ERROR_DESCRIPTION));
- hm.put(MessageCodes.GENERAL_ERROR, new ErrorCodeInfo(GENERAL_ERROR_CODE, GENERAL_ERROR_DESCRIPTION));
- hm.put(MessageCodes.MISS_PROPERTY_ERROR, new ErrorCodeInfo(MISS_PROPERTY_ERROR, MISS_PROPERTY_ERROR_DESCRIPTION));
- hm.put(MessageCodes.UPDATE_ERROR, new ErrorCodeInfo(UPDATE_ERROR, UPDATE_ERROR_DESCRIPTION));
- hm.put(MessageCodes.ERROR_SYSTEM_ERROR, new ErrorCodeInfo(ERROR_SYSTEM_ERROR, ERROR_SYSTEM_ERROR_DESCRIPTION));
- hm.put(MessageCodes.ERROR_DATA_ISSUE, new ErrorCodeInfo(ERROR_DATA_ISSUE, ERROR_DATA_ISSUE_DESCRIPTION));
- hm.put(MessageCodes.ERROR_PERMISSIONS, new ErrorCodeInfo(ERROR_PERMISSIONS, ERROR_PERMISSIONS_DESCRIPTION));
- hm.put(MessageCodes.ERROR_DATA_ISSUE, new ErrorCodeInfo(ERROR_DATA_ISSUE, ERROR_DATA_ISSUE_DESCRIPTION));
- hm.put(MessageCodes.ERROR_PROCESS_FLOW, new ErrorCodeInfo(ERROR_PROCESS_FLOW, ERROR_PROCESS_FLOW_DESCRIPTION));
- hm.put(MessageCodes.ERROR_SCHEMA_INVALID, new ErrorCodeInfo(ERROR_SCHEMA_INVALID, ERROR_SCHEMA_INVALID_DESCRIPTION));
- hm.put(MessageCodes.ERROR_UNKNOWN, new ErrorCodeInfo(ERROR_UNKNOWN, ERROR_UNKNOWN_DESCRIPTION));
- hm.put(MessageCodes.ERROR_AUDIT, new ErrorCodeInfo(ERROR_AUDIT, ERROR_AUDIT_DESCRIPTION));
+ hm.put(MessageCodes.EXCEPTION_ERROR, new ErrorCodeInfo(EXCEPTION_ERROR_CODE, EXCEPTION_ERROR_DESCRIPTION));
+ hm.put(MessageCodes.GENERAL_ERROR, new ErrorCodeInfo(GENERAL_ERROR_CODE, GENERAL_ERROR_DESCRIPTION));
+ hm.put(MessageCodes.MISS_PROPERTY_ERROR,
+ new ErrorCodeInfo(MISS_PROPERTY_ERROR, MISS_PROPERTY_ERROR_DESCRIPTION));
+ hm.put(MessageCodes.UPDATE_ERROR, new ErrorCodeInfo(UPDATE_ERROR, UPDATE_ERROR_DESCRIPTION));
+ hm.put(MessageCodes.ERROR_SYSTEM_ERROR, new ErrorCodeInfo(ERROR_SYSTEM_ERROR, ERROR_SYSTEM_ERROR_DESCRIPTION));
+ hm.put(MessageCodes.ERROR_DATA_ISSUE, new ErrorCodeInfo(ERROR_DATA_ISSUE, ERROR_DATA_ISSUE_DESCRIPTION));
+ hm.put(MessageCodes.ERROR_PERMISSIONS, new ErrorCodeInfo(ERROR_PERMISSIONS, ERROR_PERMISSIONS_DESCRIPTION));
+ hm.put(MessageCodes.ERROR_DATA_ISSUE, new ErrorCodeInfo(ERROR_DATA_ISSUE, ERROR_DATA_ISSUE_DESCRIPTION));
+ hm.put(MessageCodes.ERROR_PROCESS_FLOW, new ErrorCodeInfo(ERROR_PROCESS_FLOW, ERROR_PROCESS_FLOW_DESCRIPTION));
+ hm.put(MessageCodes.ERROR_SCHEMA_INVALID,
+ new ErrorCodeInfo(ERROR_SCHEMA_INVALID, ERROR_SCHEMA_INVALID_DESCRIPTION));
+ hm.put(MessageCodes.ERROR_UNKNOWN, new ErrorCodeInfo(ERROR_UNKNOWN, ERROR_UNKNOWN_DESCRIPTION));
+ hm.put(MessageCodes.ERROR_AUDIT, new ErrorCodeInfo(ERROR_AUDIT, ERROR_AUDIT_DESCRIPTION));
}
+
private ErrorCodeMap() {}
-
+
public static ErrorCodeInfo getErrorCodeInfo(MessageCodes messageCode) {
return hm.get(messageCode);
}
-
+
static class ErrorCodeInfo {
-
- private String errorCode;
- private String errorDesc;
-
- public ErrorCodeInfo(String errorCode, String errorDesc){
- this.errorCode = errorCode;
- this.errorDesc = errorDesc;
- }
-
- public String getErrorCode() {
- return errorCode;
- }
-
- public String getErrorDesc() {
- return errorDesc;
- }
-
- }
-
+
+ private String errorCode;
+ private String errorDesc;
+
+ public ErrorCodeInfo(String errorCode, String errorDesc) {
+ this.errorCode = errorCode;
+ this.errorDesc = errorDesc;
+ }
+
+ public String getErrorCode() {
+ return errorCode;
+ }
+
+ public String getErrorDesc() {
+ return errorDesc;
+ }
+
+ }
+
}
diff --git a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/EventData.java b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/EventData.java
index 037a144d..a8d90ad7 100644
--- a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/EventData.java
+++ b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/EventData.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP-Logging
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,35 +23,40 @@ package org.onap.policy.common.logging.eelf;
import java.time.Instant;
/**
- *
* EventData can be used for logging a rule event.
- *
*/
public class EventData {
- private String requestID = null;
+ private String requestId = null;
private Instant startTime = null;
private Instant endTime = null;
- //Default constructor takes no arguments.
- //Is empty because instance variables are assigned
- //their default values upon declaration.
- public EventData() {
- //See above comments for the reason this constructor is empty
+ // Default constructor takes no arguments.
+ // Is empty because instance variables are assigned
+ // their default values upon declaration.
+ public EventData() {
+ // See above comments for the reason this constructor is empty
}
- public EventData(String requestID, Instant startTime, Instant endTime) {
- this.requestID = requestID;
+ /**
+ * Create an instance.
+ *
+ * @param requestId the request ID
+ * @param startTime the start time
+ * @param endTime the end time
+ */
+ public EventData(String requestId, Instant startTime, Instant endTime) {
+ this.requestId = requestId;
this.startTime = startTime;
this.endTime = endTime;
}
public String getRequestID() {
- return requestID;
+ return requestId;
}
- public void setRequestID(String requestID) {
- this.requestID = requestID;
+ public void setRequestID(String requestId) {
+ this.requestId = requestId;
}
public Instant getStartTime() {
@@ -72,14 +77,14 @@ public class EventData {
@Override
public String toString() {
- return requestID + " Starting Time : " + this.startTime + " Ending Time : " + this.endTime;
+ return requestId + " Starting Time : " + this.startTime + " Ending Time : " + this.endTime;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + ((requestID == null) ? 0 : requestID.hashCode());
+ result = prime * result + ((requestId == null) ? 0 : requestId.hashCode());
return result;
}
@@ -92,18 +97,18 @@ public class EventData {
return false;
}
if (obj instanceof String) {
- String requestId = (String) obj;
- return requestID != null && requestID.equals(requestId);
+ String otherRequestId = (String) obj;
+ return requestId != null && requestId.equals(otherRequestId);
}
if (getClass() != obj.getClass()) {
return false;
}
EventData other = (EventData) obj;
- if (requestID == null) {
- if (other.requestID != null) {
+ if (requestId == null) {
+ if (other.requestId != null) {
return false;
}
- } else if (!requestID.equals(other.requestID)) {
+ } else if (!requestId.equals(other.requestId)) {
return false;
}
return true;
diff --git a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/EventTrackInfo.java b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/EventTrackInfo.java
index 077a5a70..46401e9e 100644
--- a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/EventTrackInfo.java
+++ b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/EventTrackInfo.java
@@ -30,17 +30,22 @@ public class EventTrackInfo {
private final ConcurrentMap<String, EventData> eventInfo;
+ /**
+ * Construct an instance.
+ */
public EventTrackInfo() {
/*
- * An initial capacity of 16 ensures the number of elements before resizing happens
- * Load factor of 0,9 ensures a dense packaging inside ConcurrentHashMap which will optimize memory use
- * Concurrency Level set to 1 will ensure that only one shard is created and maintained
+ * An initial capacity of 16 ensures the number of elements before resizing happens Load
+ * factor of 0,9 ensures a dense packaging inside ConcurrentHashMap which will optimize
+ * memory use Concurrency Level set to 1 will ensure that only one shard is created and
+ * maintained
*/
eventInfo = new ConcurrentHashMap<>(16, 0.9f, 1);
}
/**
- * Returns an instance of EventData associated to this requestID
+ * Returns an instance of EventData associated to this requestID.
+ *
* @param requestID request id
* @return EventData
*/
@@ -50,6 +55,7 @@ public class EventTrackInfo {
/**
* Stores an EventData object in a ConcurrentHashMap using its requestID as key.
+ *
* @param event event data
*/
public void storeEventData(EventData event) {
@@ -59,7 +65,7 @@ public class EventTrackInfo {
if (id == null || id.isEmpty()) {
return;
}
- //in case override the start time, check the original event was already stored or not
+ // in case override the start time, check the original event was already stored or not
if (!eventInfo.containsKey(id)) {
eventInfo.put(id, event);
}
@@ -68,6 +74,7 @@ public class EventTrackInfo {
/**
* Removes an EventData object from a ConcurrentHashMap using the eventId as key.
+ *
* @param eventId event id
*/
public void remove(String eventId) {
@@ -77,7 +84,7 @@ public class EventTrackInfo {
}
/**
- * Returns a ConcurrentHashMap of EventData
+ * Returns a ConcurrentHashMap of EventData.
*/
public ConcurrentMap<String, EventData> getEventInfo() {
return eventInfo;
diff --git a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/EventTrackInfoHandler.java b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/EventTrackInfoHandler.java
index a79ab521..5f97c365 100644
--- a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/EventTrackInfoHandler.java
+++ b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/EventTrackInfoHandler.java
@@ -28,9 +28,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
/**
- *
- * EventTrackInfoHandler is the handler of clean up all expired event objects
- *
+ * EventTrackInfoHandler is the handler of clean up all expired event objects.
*/
public class EventTrackInfoHandler extends TimerTask {
@@ -47,7 +45,7 @@ public class EventTrackInfoHandler extends TimerTask {
}
/**
- * Removes all expired event objects from the ConcurrentHashMap of EventData
+ * Removes all expired event objects from the ConcurrentHashMap of EventData.
*/
private void cleanUp() {
diff --git a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/MDCInfo.java b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/MDCInfo.java
index f49b34a7..f7832271 100644
--- a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/MDCInfo.java
+++ b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/MDCInfo.java
@@ -23,15 +23,14 @@ package org.onap.policy.common.logging.eelf;
import java.util.concurrent.ConcurrentMap;
/**
- *
- * Interface needs to be implemented by DroolsPDPMDCInfo
- *
+ * Interface needs to be implemented by DroolsPDPMDCInfo.
*/
@FunctionalInterface
public interface MDCInfo {
/**
* Returns MDC info.
+ *
* @return MDC info
*/
ConcurrentMap<String, String> getMDCInfo();
diff --git a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/MessageCodes.java b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/MessageCodes.java
index 3bfce0b5..ab5712ff 100644
--- a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/MessageCodes.java
+++ b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/MessageCodes.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* ONAP-Logging
* ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -24,140 +24,142 @@ import com.att.eelf.i18n.EELFResolvableErrorEnum;
import com.att.eelf.i18n.EELFResourceManager;
/**
- *
- * MessageCodes contains all the messagge codes for EELF logging messages
- *
+ * MessageCodes contains all the messagge codes for EELF logging messages.
*/
public enum MessageCodes implements EELFResolvableErrorEnum {
- // Below is a list of Error Messages taken from com.att.research.xacml.api XACMLErrorConstants
- // found under: policy-engine\XACML\src\main\java\com\att\research\xacml\api\XACMLErrorConstants.java
-
- ERROR_PERMISSIONS,
-
- ERROR_SYSTEM_ERROR,
-
- ERROR_DATA_ISSUE,
-
- ERROR_SCHEMA_INVALID,
-
- ERROR_PROCESS_FLOW,
-
- ERROR_UNKNOWN,
-
- ERROR_AUDIT,
-
- // Above is a list of Error Messages taken from com.att.research.xacml.api XACMLErrorConstants
- // found under: policy-engine\XACML\src\main\java\com\att\research\xacml\api\XACMLErrorConstants.java
-
- //----------------------5000-5099 Business/Flow Processing Related --------------------/
-
- BAD_TYPE_WARNING,
-
- GENERAL_INFO,
-
- GENERAL_WARNING,
-
- MISS_PROPERTY_ERROR,
-
- EXCEPTION_ERROR,
-
- MISS_PROPERTY_INFO,
-
- RULE_AUDIT_EXEC_INFO,
-
- RULE_AUDIT_BEGIN_INFO,
-
- RULE_AUDIT_END_INFO,
-
- RULE_AUDIT_START_END_INFO,
-
- RULE_METRICS_INFO,
-
- UEB_AUDIT_EXEC_INFO,
-
- UEB_AUDIT_BEGIN_INFO,
-
- UEB_AUDIT_END_INFO,
-
- UPDATE_ERROR,
-
- GENERAL_ERROR,
-
- //----------------------New enums should be added above this line ------------------------------------------------------------------/
-
- //--------------------- The enums below are old code. They should not be used since 1607 release and eventually will be removed -----/
- /**
- * Application message which requires no arguments
+ // Below is a list of Error Messages taken from com.att.research.xacml.api XACMLErrorConstants
+ // found under:
+ // policy-engine\XACML\src\main\java\com\att\research\xacml\api\XACMLErrorConstants.java
+
+ ERROR_PERMISSIONS,
+
+ ERROR_SYSTEM_ERROR,
+
+ ERROR_DATA_ISSUE,
+
+ ERROR_SCHEMA_INVALID,
+
+ ERROR_PROCESS_FLOW,
+
+ ERROR_UNKNOWN,
+
+ ERROR_AUDIT,
+
+ // Above is a list of Error Messages taken from com.att.research.xacml.api XACMLErrorConstants
+ // found under:
+ // policy-engine\XACML\src\main\java\com\att\research\xacml\api\XACMLErrorConstants.java
+
+ // ----------------------5000-5099 Business/Flow Processing Related --------------------/
+
+ BAD_TYPE_WARNING,
+
+ GENERAL_INFO,
+
+ GENERAL_WARNING,
+
+ MISS_PROPERTY_ERROR,
+
+ EXCEPTION_ERROR,
+
+ MISS_PROPERTY_INFO,
+
+ RULE_AUDIT_EXEC_INFO,
+
+ RULE_AUDIT_BEGIN_INFO,
+
+ RULE_AUDIT_END_INFO,
+
+ RULE_AUDIT_START_END_INFO,
+
+ RULE_METRICS_INFO,
+
+ UEB_AUDIT_EXEC_INFO,
+
+ UEB_AUDIT_BEGIN_INFO,
+
+ UEB_AUDIT_END_INFO,
+
+ UPDATE_ERROR,
+
+ GENERAL_ERROR,
+
+ // ----------------------New enums should be added above this line
+ // ------------------------------------------------------------------/
+
+ // --------------------- The enums below are old code. They should not be used since 1607
+ // release and eventually will be removed -----/
+ /**
+ * Application message which requires no arguments.
*/
- MESSAGE_SAMPLE_NOARGS,
-
- /**
- * Application message which requires one argument {0}
+ MESSAGE_SAMPLE_NOARGS,
+
+ /**
+ * Application message which requires one argument {0}.
*/
- MESSAGE_SAMPLE_ONEARGUMENT,
-
- /**
- * Audit message which requires one argument {0}
- */
- AUDIT_MESSAGE_ONEARGUMENT,
-
- /**
- * Error message which requires one argument {0}
+ MESSAGE_SAMPLE_ONEARGUMENT,
+
+ /**
+ * Audit message which requires one argument {0}.
*/
- ERROR_MESSAGE_ONEARGUMENT,
-
- /**
- * Metrics message which requires one argument {0}
+ AUDIT_MESSAGE_ONEARGUMENT,
+
+ /**
+ * Error message which requires one argument {0}.
*/
- METRICS_MESSAGE_ONEARGUMENT,
-
- /**
- * Debug message which requires one argument {0}
+ ERROR_MESSAGE_ONEARGUMENT,
+
+ /**
+ * Metrics message which requires one argument {0}.
*/
- DEBUG_MESSAGE_ONEARGUMENT,
-
+ METRICS_MESSAGE_ONEARGUMENT,
+
/**
- * Application message which requires two argument {0} and another argument {1}
+ * Debug message which requires one argument {0}.
*/
- MESSAGE_SAMPLE_TWOARGUMENTS,
-
- /**
- * Sample error exception
+ DEBUG_MESSAGE_ONEARGUMENT,
+
+ /**
+ * Application message which requires two argument {0} and another argument {1}.
+ */
+ MESSAGE_SAMPLE_TWOARGUMENTS,
+
+ /**
+ * Sample error exception.
*/
MESSAGE_SAMPLE_EXCEPTION,
-
- /**
- * Sample warning message
+
+ /**
+ * Sample warning message.
*/
- MESSAGE_WARNING_SAMPLE,
-
- /**
- * Sample exception in method {0}
+ MESSAGE_WARNING_SAMPLE,
+
+ /**
+ * Sample exception in method {0}.
*/
- MESSAGE_SAMPLE_EXCEPTION_ONEARGUMENT,
-
- /**
- * Sample trace message
+ MESSAGE_SAMPLE_EXCEPTION_ONEARGUMENT,
+
+ /**
+ * Sample trace message.
*/
- MESSAGE_TRACE_SAMPLE,
-
- /**
- * Sample error message
+ MESSAGE_TRACE_SAMPLE,
+
+ /**
+ * Sample error message.
*/
- MESSAGE_ERROR_SAMPLE;
-
-
+ MESSAGE_ERROR_SAMPLE;
+
+
/**
- * Static initializer to ensure the resource bundles for this class are loaded...
- * Here this application loads messages from three bundles
+ * Static initializer to ensure the resource bundles for this class are loaded... Here this
+ * application loads messages from three bundles.
*/
static {
EELFResourceManager.loadMessageBundle("org/onap/policy/common/logging/eelf/Resources");
String id = EELFResourceManager.getIdentifier(RULE_AUDIT_EXEC_INFO);
String value = EELFResourceManager.getMessage(RULE_AUDIT_EXEC_INFO);
-
+
PolicyLogger.info("*********************** Rule audit id: " + id);
PolicyLogger.info("*********************** Rule audit value: " + value);
-
+
}
}
diff --git a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/PolicyLogger.java b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/PolicyLogger.java
index 3d351722..e3a7ab3f 100644
--- a/common-logging/src/main/java/org/onap/policy/common/logging/eelf/PolicyLogger.java
+++ b/common-logging/src/main/java/org/onap/policy/common/logging/eelf/PolicyLogger.java
@@ -20,9 +20,28 @@
package org.onap.policy.common.logging.eelf;
-import static org.onap.policy.common.logging.eelf.Configuration.*;
+import static com.att.eelf.configuration.Configuration.MDC_ALERT_SEVERITY;
+import static com.att.eelf.configuration.Configuration.MDC_INSTANCE_UUID;
+import static com.att.eelf.configuration.Configuration.MDC_KEY_REQUEST_ID;
+import static com.att.eelf.configuration.Configuration.MDC_REMOTE_HOST;
+import static com.att.eelf.configuration.Configuration.MDC_SERVER_FQDN;
+import static com.att.eelf.configuration.Configuration.MDC_SERVER_IP_ADDRESS;
+import static com.att.eelf.configuration.Configuration.MDC_SERVICE_INSTANCE_ID;
+import static com.att.eelf.configuration.Configuration.MDC_SERVICE_NAME;
+import static org.onap.policy.common.logging.eelf.Configuration.BEGIN_TIME_STAMP;
+import static org.onap.policy.common.logging.eelf.Configuration.ELAPSED_TIME;
+import static org.onap.policy.common.logging.eelf.Configuration.END_TIME_STAMP;
+import static org.onap.policy.common.logging.eelf.Configuration.ERROR_CATEGORY;
+import static org.onap.policy.common.logging.eelf.Configuration.ERROR_CODE;
+import static org.onap.policy.common.logging.eelf.Configuration.ERROR_DESCRIPTION;
+import static org.onap.policy.common.logging.eelf.Configuration.PARTNER_NAME;
+import static org.onap.policy.common.logging.eelf.Configuration.RESPONSE_CODE;
+import static org.onap.policy.common.logging.eelf.Configuration.RESPONSE_DESCRIPTION;
+import static org.onap.policy.common.logging.eelf.Configuration.SERVER_NAME;
+import static org.onap.policy.common.logging.eelf.Configuration.STATUS_CODE;
+import static org.onap.policy.common.logging.eelf.Configuration.TARGET_ENTITY;
+import static org.onap.policy.common.logging.eelf.Configuration.TARGET_SERVICE_NAME;
-import org.onap.policy.common.logging.flexlogger.LoggerType;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFLogger.Level;
import com.att.eelf.configuration.EELFManager;
@@ -42,1391 +61,1445 @@ import java.util.TimerTask;
import java.util.UUID;
import java.util.concurrent.ConcurrentMap;
+import org.onap.policy.common.logging.flexlogger.LoggerType;
import org.slf4j.MDC;
/**
- *
- * PolicyLogger contains all the static methods for EELF logging
- *
+ * PolicyLogger contains all the static methods for EELF logging.
*/
public class PolicyLogger {
- private static EELFLogger errorLogger = EELFManager.getInstance()
- .getErrorLogger();
-
- private static EELFLogger metricsLogger = EELFManager.getInstance()
- .getMetricsLogger();
-
- private static EELFLogger auditLogger = EELFManager.getInstance()
- .getAuditLogger();
-
- private static EELFLogger debugLogger = EELFManager.getInstance()
- .getDebugLogger();
-
- private static final String POLICY_LOGGER = "PolicyLogger";
-
- private static EventTrackInfo eventTracker = new EventTrackInfo();
-
- private static String hostName = null;
- private static String hostAddress = null;
- private static String component = null;
-
- private static TimerTask ttrcker = null;
- private static boolean isEventTrackerRunning = false;
- private static Timer timer = null;
-
- //Default:Timer initial delay and the delay between in milliseconds before task is to be execute
- private static int timerDelayTime = 1000;
-
- //Default:Timer scheduleAtFixedRate period - time in milliseconds between successive task executions
- private static int checkInterval = 30 * 1000;
-
- //Default:longest time an event info can be stored in the concurrentHashMap for logging - in seconds
- static int expiredTime = 60*60*1000*24; //one day
-
- //Default:the size of the concurrentHashMap which stores the event starting time - when its size reaches this limit, the Timer get executed
- private static int concurrentHashMapLimit = 5000;
-
- //Default:the size of the concurrentHashMap which stores the event starting time - when its size drops to this point, stop the Timer
- private static int stopCheckPoint = 2500;
-
- private static boolean isOverrideLogbackLevel = false;
-
- private static Level debugLevel = Level.INFO;
- private static Level auditLevel = Level.INFO;
- private static Level metricsLevel = Level.INFO;
- private static Level errorLevel = Level.ERROR;
- private static String classNameProp = "ClassName";
-
- private static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS+00:00";
- private static final String COMPLETE_STATUS = "COMPLETE";
- private static final String ERROR_CATEGORY_VALUE = "ERROR";
-
- static{
- if (hostName == null || hostAddress == null) {
- try {
- hostName = InetAddress.getLocalHost().getHostName();
- hostAddress = InetAddress.getLocalHost().getHostAddress();
- } catch (UnknownHostException e) {
- PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, POLICY_LOGGER, "UnknownHostException");
- }
- }
- }
-
- public static Level getDebugLevel() {
- return debugLevel;
- }
-
- public static synchronized void setDebugLevel(Level level) {
- debugLevel = level;
- }
-
- public static Level getAuditLevel() {
- return auditLevel;
- }
-
- public static synchronized void setAuditLevel(Level level) {
- auditLevel = level;
- }
-
- public static Level getMetricsLevel() {
- return metricsLevel;
- }
-
- public static synchronized void setMetricsLevel(Level level) {
- metricsLevel = level;
- }
-
- public static Level getErrorLevel() {
- return errorLevel;
- }
-
- public static synchronized void setErrorLevel(Level level) {
- errorLevel = level;
- }
-
- public static String getClassname() {
- return classNameProp;
- }
-
- public static synchronized void setClassname(String name) {
- classNameProp = name;
- }
-
- /**
- * Populates MDC info
- * @param transId
- * @return String
- */
- public static String postMDCInfoForEvent(String transId) {
- MDC.clear();
-
- String transactionId = transId;
-
- if(transactionId == null || transactionId.isEmpty()){
- transactionId = UUID.randomUUID().toString();
- }
-
- if("DROOLS".equalsIgnoreCase(component)){
- MDC.put(TARGET_ENTITY, "POLICY");
- MDC.put(TARGET_SERVICE_NAME, "drools evaluate rule");
- return postMDCInfoForEvent(transactionId, new DroolsPDPMDCInfo());
- } else {
- // For Xacml
- MDC.put(TARGET_ENTITY, "POLICY");
- MDC.put(TARGET_SERVICE_NAME, "PE Process");
- }
-
- MDC.put(MDC_REMOTE_HOST, "");
- MDC.put(MDC_KEY_REQUEST_ID, transactionId);
- MDC.put(MDC_SERVICE_NAME, "Policy.xacmlPdp");
- MDC.put(MDC_SERVICE_INSTANCE_ID, "Policy.xacmlPdp.event");
- try {
- MDC.put(MDC_SERVER_FQDN, hostName);
- MDC.put(MDC_SERVER_IP_ADDRESS, hostAddress);
- } catch (Exception e) {
- errorLogger.error(MessageCodes.EXCEPTION_ERROR, e, POLICY_LOGGER);
- }
- Instant startTime = Instant.now();
- Instant endTime = Instant.now();
- long ns = Duration.between(startTime, endTime).toMillis(); // use millisecond as default and remove unit from log
-
- MDC.put(MDC_INSTANCE_UUID, "");
- MDC.put(MDC_ALERT_SEVERITY, "");
-
- SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
-
- String formatedTime = sdf.format(Date.from(startTime));
- MDC.put(BEGIN_TIME_STAMP, formatedTime );
-
- //set default values for these required fields below, they can be overridden
- formatedTime = sdf.format(Date.from(endTime));
- MDC.put(END_TIME_STAMP, formatedTime);
- MDC.put(ELAPSED_TIME, Long.toString(ns));
-
- MDC.put(PARTNER_NAME, "N/A");
-
- MDC.put(STATUS_CODE, COMPLETE_STATUS);
- MDC.put(RESPONSE_CODE, "N/A");
- MDC.put(RESPONSE_DESCRIPTION, "N/A");
-
-
- return transactionId;
-
- }
-
- /**
- * Populate MDC Info using the passed in mdcInfo
- * @param transId
- * @param mdcInfo
- * @return String
- */
- private static String postMDCInfoForEvent(String transId, MDCInfo mdcInfo ) {
-
- MDC.put(MDC_KEY_REQUEST_ID, transId);
- if(mdcInfo != null && mdcInfo.getMDCInfo() != null && !mdcInfo.getMDCInfo().isEmpty()){
-
- ConcurrentMap<String, String> mdcMap = mdcInfo.getMDCInfo();
- Iterator<String> keyIterator = mdcMap.keySet().iterator();
- String key;
-
- while(keyIterator.hasNext()){
- key = keyIterator.next();
- MDC.put(key, mdcMap.get(key));
- }
- }
-
- try {
- MDC.put(MDC_SERVER_FQDN, hostName);
- MDC.put(MDC_SERVER_IP_ADDRESS, hostAddress);
- } catch (Exception e) {
- errorLogger.error(MessageCodes.EXCEPTION_ERROR, e, POLICY_LOGGER);
- }
- Instant startTime = Instant.now();
- Instant endTime = Instant.now();
- long ns = Duration.between(startTime, endTime).toMillis(); // use millisecond as default and remove unit from log
-
- SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
-
- String formatedTime = sdf.format(Date.from(startTime));
- MDC.put(BEGIN_TIME_STAMP, formatedTime );
-
- //set default values for these required fields below, they can be overridden
- formatedTime = sdf.format(Date.from(endTime));
- MDC.put(END_TIME_STAMP, formatedTime);
- MDC.put(ELAPSED_TIME, Long.toString(ns));
-
- return transId;
- }
-
- /**
- * Set Timestamps for start, end and duration of logging a transaction
- */
- private static void seTimeStamps(){
-
- Instant startTime = Instant.now();
- Instant endTime = Instant.now();
- long ns = Duration.between(startTime, endTime).toMillis();
-
- MDC.put(MDC_INSTANCE_UUID, "");
- MDC.put(MDC_ALERT_SEVERITY, "");
-
- SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
-
- String formatedTime = sdf.format(Date.from(startTime));
- MDC.put(BEGIN_TIME_STAMP, formatedTime );
-
- //set default values for these required fields below, they can be overridden
- formatedTime = sdf.format(Date.from(endTime));
- MDC.put(END_TIME_STAMP, formatedTime);
- MDC.put(ELAPSED_TIME, Long.toString(ns));
-
- MDC.put(PARTNER_NAME, "N/A");
-
- MDC.put(STATUS_CODE, COMPLETE_STATUS);
- MDC.put(RESPONSE_CODE, "N/A");
- MDC.put(RESPONSE_DESCRIPTION, "N/A");
-
- }
-
- /**
- * Sets transaction Id to MDC
- * @param transId
- */
- public static void setTransId(String transId){
-
- MDC.put(MDC_KEY_REQUEST_ID, transId);
- }
-
- /**
- * Returns current transaction Id used in MDC
- * @return transId
- */
- public static String getTransId(){
-
- return MDC.get(MDC_KEY_REQUEST_ID);
- }
-
- /**
- * Sets transaction Id to MDC
- * @param o
- */
- public static void postMDCInfoForEvent(Object o){
- postMDCInfoForEvent(""+o);
- }
-
- /**
- * Resets transaction Id in MDC for the rule triggered by this event
- * @param transactionId
- * @return String
- */
- public static String postMDCInfoForTriggeredRule(String transId) {
-
- String transactionId = transId;
-
- MDC.clear();
-
- if(transactionId == null || transactionId.isEmpty()){
- transactionId = UUID.randomUUID().toString();
- }
- MDC.put(MDC_REMOTE_HOST, "");
- MDC.put(MDC_KEY_REQUEST_ID, transactionId);
- MDC.put(MDC_SERVICE_NAME, "Policy.droolsPdp");
- MDC.put(MDC_SERVICE_INSTANCE_ID, "");
- try {
- MDC.put(MDC_SERVER_FQDN, hostName);
- MDC.put(MDC_SERVER_IP_ADDRESS, hostAddress);
- } catch (Exception e) {
- errorLogger.error(MessageCodes.EXCEPTION_ERROR, e, POLICY_LOGGER);
- }
- MDC.put(MDC_INSTANCE_UUID, "");
- MDC.put(MDC_ALERT_SEVERITY, "");
- MDC.put(STATUS_CODE, COMPLETE_STATUS);
-
- return transactionId;
-
- }
-
- /**
- * Resets transaction Id in MDC for the rule triggered by this event
- * @param o
- */
- public static void postMDCUUIDForTriggeredRule(Object o) {
-
- postMDCInfoForTriggeredRule("" + o);
-
- }
-
- // ************************************************************************************************
- /**
- * Records the Info event with String [] arguments
- * @param msg
- * @param className
- * @param arguments
- */
- public static void info(MessageCodes msg, String className, String... arguments) {
- MDC.put(classNameProp, className);
- debugLogger.info(msg, arguments);
- }
-
- /**
- * Records only one String message with its class name
- * @param className
- * @param arg0
- */
- public static void info( String className, String arg0) {
- MDC.put(classNameProp, className);
- debugLogger.info(MessageCodes.GENERAL_INFO, arg0);
- }
-
-
- /**
- * Records only one String message
- * @param arg0
- */
- public static void info(Object arg0) {
- MDC.put(classNameProp, "");
- debugLogger.info(MessageCodes.GENERAL_INFO, String.valueOf(arg0));
- }
-
- /**
- * Records a message with passed in message code, Throwable object, a list of string values
- * @param msg
- * @param arg0
- * @param arguments
- */
- public static void info(MessageCodes msg, Throwable arg0,
- String... arguments) {
- MDC.put(classNameProp, "");
- String arguments2 = getNormalizedStackTrace(arg0, arguments);
- debugLogger.info(msg, arguments2);
- }
-
- /**
- * Records a message with passed in message code, class name, Throwable object, a list of string values
- * @param msg
- * @param className
- * @param arg0
- * @param arguments
- */
- public static void info(MessageCodes msg, String className, Throwable arg0,
- String... arguments) {
- MDC.put(classNameProp, className);
- String arguments2 = getNormalizedStackTrace(arg0, arguments);
- debugLogger.info(msg, arguments2);
- }
-
- /**
- * Records only one String message with its class name
- * @param arg0 log message
- * @param className class name
- */
- public static void warn( String className, String arg0) {
- MDC.put(classNameProp, className);
- debugLogger.warn(MessageCodes.GENERAL_INFO, arg0);
- }
-
- /**
- * Records only one String message
- * @param arg0
- */
- public static void warn(Object arg0) {
- MDC.put(classNameProp, "");
- debugLogger.warn(MessageCodes.GENERAL_WARNING, "" + arg0);
- }
-
- /**
- * Records only one String message without its class name passed in
- * @param arg0
- */
- public static void warn(String arg0) {
- MDC.put(classNameProp, "");
- debugLogger.warn(MessageCodes.GENERAL_WARNING, arg0);
- }
-
- /**
- * Records a message with passed in message code, class name and a list of string values
- * @param msg
- * @param className
- * @param arguments
- */
- public static void warn(MessageCodes msg, String className, String... arguments) {
- MDC.put(classNameProp, className);
- debugLogger.warn(msg, arguments);
- }
-
- /**
- * Records a message with passed in message code, Throwable object, a list of string values
- * @param msg
- * @param arg0
- * @param arguments
- */
- public static void warn(MessageCodes msg, Throwable arg0,
- String... arguments) {
- MDC.put(classNameProp, "");
- String arguments2 = getNormalizedStackTrace(arg0, arguments);
- debugLogger.warn(msg, arguments2);
- }
-
- /**
- * Records a message with passed in message code, Throwable object, a list of string values
- * @param msg
- * @param className
- * @param arg0
- * @param arguments
- */
- public static void warn(MessageCodes msg, String className, Throwable arg0,
- String... arguments) {
- MDC.put(classNameProp, className);
- String arguments2 = getNormalizedStackTrace(arg0, arguments);
- debugLogger.warn(msg, arguments2);
- }
-
- /**
- * Records only one String message with its class name
- * @param className class name
- * @param arg0 log message
- */
- public static void error( String className, String arg0) {
- MDC.put(classNameProp, className);
- if(ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null){
- MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
- MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
-
- }
- errorLogger.error(MessageCodes.GENERAL_ERROR, arg0);
- }
-
- /**
- * Records only one String message
- * @param arg0
- */
- public static void error(String arg0) {
- MDC.put(classNameProp, "");
- MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
-
- if(ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null){
- MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
- MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
-
- }
- errorLogger.error(MessageCodes.GENERAL_ERROR, arg0);
- }
-
- /**
- * Records only one String message
- * @param arg0
- */
- public static void error(Object arg0) {
- MDC.put(classNameProp, "");
- MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
-
- if(ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null){
- MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
- MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
-
- }
- errorLogger.error(MessageCodes.GENERAL_ERROR, "" + arg0);
- }
-
- /**
- * Records a message with passed in message code, Throwable object, a list of string values
- * @param msg
- * @param arg0
- * @param arguments
- */
- public static void error(MessageCodes msg, Throwable arg0,
- String... arguments) {
- MDC.put(classNameProp, "");
- MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
-
- if(ErrorCodeMap.getErrorCodeInfo(msg) != null){
- MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(msg).getErrorCode());
- MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(msg).getErrorDesc());
-
- }
- String arguments2 = getNormalizedStackTrace(arg0, arguments);
- errorLogger.error(msg, arguments2);
- }
-
- /**
- * Records a message with passed in message code, class name, Throwable object, a list of string values
- * @param msg
- * @param className
- * @param arg0
- * @param arguments
- */
- public static void error(MessageCodes msg, String className, Throwable arg0,
- String... arguments) {
- MDC.put(classNameProp, className);
- MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
-
- if(ErrorCodeMap.getErrorCodeInfo(msg) != null){
- MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(msg).getErrorCode());
- MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(msg).getErrorDesc());
-
- }
- String arguments2 = getNormalizedStackTrace(arg0, arguments);
- errorLogger.error(msg, arguments2);
- }
-
- /**
- * Records a message with passed in message code and a list of string values
- * @param msg
- * @param arguments
- */
- public static void error(MessageCodes msg, String... arguments) {
- MDC.put(classNameProp, "");
- MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
-
- if(ErrorCodeMap.getErrorCodeInfo(msg) != null){
- MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(msg).getErrorCode());
- MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(msg).getErrorDesc());
-
- }
- errorLogger.error(msg, arguments);
- }
-
- /**
- * Records a message with passed in message code and a list of string values
- * @param msg
- * @param arguments
- */
- public static void debug(MessageCodes msg, String... arguments) {
- MDC.put(classNameProp, "");
- debugLogger.debug(msg, arguments);
- }
-
- /**
- * Records only one String message with its class name
- * @param className
- * @param arg0
- */
- public static void debug( String className, String arg0) {
- MDC.put(classNameProp, className);
- debugLogger.debug(MessageCodes.GENERAL_INFO, arg0);
- }
-
- /**
- * Records only one String message
- * @param arg0
- */
- public static void debug(String arg0) {
- MDC.put(classNameProp, "");
- debugLogger.debug(arg0);
- }
-
- /**
- * Records only one String message
- * @param arg0
- */
- public static void debug(Object arg0) {
-
- MDC.put(classNameProp, "");
- debugLogger.debug("" + arg0);
- }
-
- /**
- * Records only one String message with its class name
- * @param className
- * @param arg0
- */
- public static void audit(String className, Object arg0) {
- MDC.put(STATUS_CODE, COMPLETE_STATUS);
- MDC.put(classNameProp, className);
- auditLogger.info("" + arg0);
- }
-
- /**
- * Records only one String message
- * @param arg0
- */
- public static void audit(Object arg0) {
- MDC.put(STATUS_CODE, COMPLETE_STATUS);
- MDC.put(classNameProp, "");
- auditLogger.info("" + arg0);
- }
-
- /**
- * Records a message with passed in message code, hrowable object, a list of string values
- * @param msg
- * @param arg0
- * @param arguments
- */
- public static void debug(MessageCodes msg, Throwable arg0,
- String... arguments) {
- MDC.put(classNameProp, "");
- String arguments2 = getNormalizedStackTrace(arg0, arguments);
- debugLogger.debug(msg, arguments2);
- }
-
- /**
- * Records a message with passed in message code, class name, Throwable object, a list of string values
- * @param msg
- * @param className
- * @param arg0
- * @param arguments
- */
- public static void debug(MessageCodes msg, String className, Throwable arg0,
- String... arguments) {
- MDC.put(classNameProp, className);
- String arguments2 = getNormalizedStackTrace(arg0, arguments);
- debugLogger.debug(msg, arguments2);
- }
- /**
- * returns true for enabled, false for not enabled
- */
- public static boolean isDebugEnabled(){
-
- return debugLogger.isDebugEnabled();
- }
-
- /**
- * returns true for enabled, false for not enabled
- */
- public static boolean isErrorEnabled(){
-
- return errorLogger.isErrorEnabled();
- }
-
- /**
- * returns true for enabled, false for not enabled
- */
- public static boolean isWarnEnabled(){
-
- return debugLogger.isWarnEnabled();
- }
-
- /**
- * returns true for enabled, false for not enabled
- */
- public static boolean isInfoEnabled1(){
-
- return debugLogger.isInfoEnabled();
- }
-
- /**
- * returns true for enabled, false for not enabled
- */
- public static boolean isAuditEnabled(){
-
- return debugLogger.isInfoEnabled();
- }
-
- /**
- * returns true for enabled, false for not enabled
- */
- public static boolean isInfoEnabled(){
-
- return debugLogger.isInfoEnabled();
- }
-
- /**
- * Records only one String message with its class name
- * @param className
- * @param arg0
- */
- public static void trace( String className, String arg0) {
- MDC.put(classNameProp, className);
- debugLogger.trace(MessageCodes.GENERAL_INFO, arg0);
- }
-
- /**
- * Records only one String message
- * @param arg0
- */
- public static void trace(Object arg0){
-
- MDC.put(classNameProp, "");
- debugLogger.trace(""+arg0);
- }
- /**
- * Records the starting time of the event with its request Id as the key
- * @param eventId
- */
- public static void recordAuditEventStart(String eventId) {
-
- MDC.put(STATUS_CODE, COMPLETE_STATUS);
- postMDCInfoForEvent(eventId);
-
- if(eventTracker == null){
- eventTracker = new EventTrackInfo();
- }
- EventData event = new EventData();
- event.setRequestID(eventId);
- event.setStartTime(Instant.now());
- eventTracker.storeEventData(event);
- MDC.put(MDC_KEY_REQUEST_ID, eventId);
- debugLogger.info("CONCURRENTHASHMAP_LIMIT : " + concurrentHashMapLimit);
- //--- Tracking the size of the concurrentHashMap, if it is above limit, keep EventTrack Timer running
- int size = eventTracker.getEventInfo().size();
-
- debugLogger.info("EventInfo concurrentHashMap Size : " + size + " on " + new Date());
- debugLogger.info("isEventTrackerRunning : " + isEventTrackerRunning);
-
- if( size >= concurrentHashMapLimit){
-
-
- if(!isEventTrackerRunning){
-
- startCleanUp();
- isEventTrackerRunning = true;
- }
-
- }else if( size <= stopCheckPoint && isEventTrackerRunning){
-
- stopCleanUp();
- }
- }
-
- /**
- * Records the starting time of the event with its request Id as the key
- * @param eventId
- */
- public static void recordAuditEventStart(UUID eventId) {
-
- if(eventId == null){
- return;
- }
-
- if(eventTracker == null){
- eventTracker = new EventTrackInfo();
- }
-
- recordAuditEventStart(eventId.toString());
-
- }
-
- /**
- * Records the ending time of the event with its request Id as the key
- * @param eventId
- * @param rule
- */
- public static void recordAuditEventEnd(String eventId, String rule) {
-
- if(eventTracker == null){
- return;
- }
- if(eventId == null){
- return;
- }
-
- creatAuditEventTrackingRecord(eventId, rule, "");
-
- }
-
- /**
- * Records the ending time of the event with its request Id as the key
- * @param eventId
- * @param rule
- * @param policyVersion
- */
- public static void recordAuditEventEnd(String eventId, String rule , String policyVersion) {
-
- if(eventTracker == null){
- return;
- }
- if(eventId == null){
- return;
- }
-
- creatAuditEventTrackingRecord(eventId, rule, policyVersion);
-
- }
-
- /**
- * Records the ending time of the event with its request Id as the key
- * @param eventId
- * @param rule
- * @param policyVersion
- */
- public static void recordAuditEventEnd(UUID eventId, String rule, String policyVersion) {
-
- if(eventId == null){
- return;
- }
-
- recordAuditEventEnd(eventId.toString(), rule, policyVersion);
-
- }
-
-
- /**
- * Records the ending time of the event with its request Id as the key
- * @param eventId
- * @param rule
- */
- public static void recordAuditEventEnd(UUID eventId, String rule) {
-
- if(eventId == null){
- return;
- }
-
- recordAuditEventEnd(eventId.toString(), rule);
-
- }
-
- /**
- * Records the ending time of the event with its request Id as the key
- * @param eventId
- * @param rule
- * @param policyVersion
- */
- public static void creatAuditEventTrackingRecord(String eventId, String rule, String policyVersion) {
-
- if(eventTracker == null){
- return;
- }
-
- EventData event = eventTracker.getEventDataByRequestID(eventId);
-
- if(event != null){
- Instant endTime = event.getEndTime();
- if(endTime == null){
- endTime = Instant.now();
- }
- MDC.put(STATUS_CODE, COMPLETE_STATUS);
- recordAuditEventStartToEnd(eventId, rule, event.getStartTime(), endTime, policyVersion);
- }
- }
-
- /**
- * Records the ending time of the event with its request Id as the key
- * @param eventId
- * @param rule
- */
- public static void creatAuditEventTrackingRecord(UUID eventId, String rule) {
-
- if(eventId == null){
- return;
- }
-
- if(eventTracker == null){
- return;
- }
-
- EventData event = eventTracker.getEventDataByRequestID(eventId.toString());
-
- if(event != null){
- Instant endTime = event.getEndTime();
- if(endTime == null){
- endTime = Instant.now();
- }
-
- recordAuditEventStartToEnd(eventId.toString(), rule, event.getStartTime(), endTime, "N/A");
- }
- }
-
- public static EventTrackInfo getEventTracker() {
- return eventTracker;
- }
-
- /**
- * Records the audit with an event starting and ending times
- * @param eventId
- * @param rule
- * @param startTime
- * @param endTime
- * @param policyVersion
- */
- public static void recordAuditEventStartToEnd(String eventId, String rule, Instant startTime, Instant endTime, String policyVersion) {
-
- if(startTime == null || endTime == null){
- return;
- }
- String serviceName = MDC.get(MDC_SERVICE_NAME);
- if(eventId != null && !eventId.isEmpty()){
- MDC.put(MDC_KEY_REQUEST_ID, eventId);
- }
-
- SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
-
- String formatedTime = sdf.format(Date.from(startTime));
- MDC.put(BEGIN_TIME_STAMP, formatedTime );
-
- //set default values for these required fields below, they can be overridden
- formatedTime = sdf.format(Date.from(endTime));
- MDC.put(END_TIME_STAMP, formatedTime);
-
- MDC.put(RESPONSE_CODE, "N/A");
- MDC.put(RESPONSE_DESCRIPTION, "N/A");
-
- long ns = Duration.between(startTime, endTime).toMillis();
-
- MDC.put(ELAPSED_TIME, Long.toString(ns));
-
- auditLogger.info(MessageCodes.RULE_AUDIT_START_END_INFO,
- serviceName, rule, startTime.toString(), endTime.toString(), Long.toString(ns), policyVersion);
-
- //--- remove the record from the concurrentHashMap
- if(eventTracker != null && eventTracker.getEventDataByRequestID(eventId) != null){
-
- eventTracker.remove(eventId);
- debugLogger.info("eventTracker.remove(" + eventId + ")");
-
- }
- }
-
- /**
- * Records the metrics with an event Id and log message
- * @param eventId
- * @param arg1
- */
- public static void recordMetricEvent(String eventId, String arg1) {
-
- seTimeStamps();
-
- String serviceName = MDC.get(MDC_SERVICE_NAME);
- MDC.put(MDC_KEY_REQUEST_ID, eventId);
- metricsLogger.info(MessageCodes.RULE_AUDIT_END_INFO,
- serviceName, arg1);
-
- }
-
- /**
- * Records the metrics with an event Id, class name and log message
- * @param eventId
- * @param className
- * @param arg1
- */
- public static void recordMetricEvent(String eventId, String className,String arg1) {
-
- seTimeStamps();
-
- MDC.put(classNameProp, className);
- String serviceName = MDC.get(MDC_SERVICE_NAME);
- MDC.put(MDC_KEY_REQUEST_ID, eventId);
- metricsLogger.info(MessageCodes.RULE_AUDIT_END_INFO,
- serviceName, arg1);
- }
-
- /**
- * Records the metrics with an event Id and log message
- * @param eventId
- * @param arg1
- */
- public static void recordMetricEvent(UUID eventId, String arg1) {
-
- if(eventId == null){
- return;
- }
- String serviceName = MDC.get(MDC_SERVICE_NAME);
- MDC.put(MDC_KEY_REQUEST_ID, eventId.toString());
- metricsLogger.info(MessageCodes.RULE_AUDIT_END_INFO,
- serviceName, arg1);
- }
-
- /**
- * Records a String message for metrics logs
- * @param arg0
- */
- public static void recordMetricEvent(String arg0) {
- seTimeStamps();
- String serviceName = MDC.get(MDC_SERVICE_NAME);
- metricsLogger.info(MessageCodes.RULE_METRICS_INFO,
- serviceName, arg0);
- }
-
-
- /**
- * Records the metrics event with a String message
- * @param arg0
- */
- public static void metrics(String arg0) {
- String serviceName = MDC.get(MDC_SERVICE_NAME);
- metricsLogger.info(MessageCodes.RULE_METRICS_INFO,
- serviceName, arg0);
- }
-
- /**
- * Records the metrics event with a class name and a String message
- * @param arg0
- */
- public static void metrics(String className, Object arg0) {
- seTimeStamps();
- MDC.put(classNameProp, className);
- String serviceName = MDC.get(MDC_SERVICE_NAME);
- metricsLogger.info(MessageCodes.RULE_METRICS_INFO,
- serviceName, ""+arg0);
- }
-
- /**
- * Records the metrics event with a String message
- * @param arg0
- */
- public static void metrics(Object arg0) {
- seTimeStamps();
- MDC.put(classNameProp, "");
- String serviceName = MDC.get(MDC_SERVICE_NAME);
- metricsLogger.info(MessageCodes.RULE_METRICS_INFO,
- serviceName, ""+arg0);
- }
-
- /**
- * Records the metrics event with a String message
- * @param arg0
- */
- public static void metricsPrintln(String arg0) {
- MDC.clear();
- metricsLogger.info(arg0);
- }
-
- /**
- * Removes all the return lines from the printStackTrace
- * @param t
- * @param arguments
- */
- private static String getNormalizedStackTrace (Throwable t, String...arguments) {
+ private static EELFLogger errorLogger = EELFManager.getInstance().getErrorLogger();
+
+ private static EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+
+ private static EELFLogger auditLogger = EELFManager.getInstance().getAuditLogger();
+
+ private static EELFLogger debugLogger = EELFManager.getInstance().getDebugLogger();
+
+ private static final String POLICY_LOGGER = "PolicyLogger";
+
+ private static EventTrackInfo eventTracker = new EventTrackInfo();
+
+ private static String hostName = null;
+ private static String hostAddress = null;
+ private static String component = null;
+
+ private static TimerTask ttrcker = null;
+ private static boolean isEventTrackerRunning = false;
+ private static Timer timer = null;
+
+ // Default:Timer initial delay and the delay between in milliseconds before task is to be
+ // execute
+ private static int timerDelayTime = 1000;
+
+ // Default:Timer scheduleAtFixedRate period - time in milliseconds between successive task
+ // executions
+ private static int checkInterval = 30 * 1000;
+
+ // Default:longest time an event info can be stored in the concurrentHashMap for logging - in
+ // seconds
+ static int expiredTime = 60 * 60 * 1000 * 24; // one day
+
+ // Default:the size of the concurrentHashMap which stores the event starting time - when its
+ // size reaches this limit, the Timer get executed
+ private static int concurrentHashMapLimit = 5000;
+
+ // Default:the size of the concurrentHashMap which stores the event starting time - when its
+ // size drops to this point, stop the Timer
+ private static int stopCheckPoint = 2500;
+
+ private static boolean isOverrideLogbackLevel = false;
+
+ private static Level debugLevel = Level.INFO;
+ private static Level auditLevel = Level.INFO;
+ private static Level metricsLevel = Level.INFO;
+ private static Level errorLevel = Level.ERROR;
+ private static String classNameProp = "ClassName";
+
+ private static final String DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.SSS+00:00";
+ private static final String COMPLETE_STATUS = "COMPLETE";
+ private static final String ERROR_CATEGORY_VALUE = "ERROR";
+
+ static {
+ if (hostName == null || hostAddress == null) {
+ try {
+ hostName = InetAddress.getLocalHost().getHostName();
+ hostAddress = InetAddress.getLocalHost().getHostAddress();
+ } catch (UnknownHostException e) {
+ PolicyLogger.error(MessageCodes.EXCEPTION_ERROR, e, POLICY_LOGGER, "UnknownHostException");
+ }
+ }
+ }
+
+ public static Level getDebugLevel() {
+ return debugLevel;
+ }
+
+ public static synchronized void setDebugLevel(Level level) {
+ debugLevel = level;
+ }
+
+ /**
+ * Sets Debug Level.
+ */
+ public static void setDebugLevel(String newDebugLevel) {
+
+ if (isOverrideLogbackLevel) {
+ PolicyLogger.debugLevel = Level.valueOf(newDebugLevel);
+ debugLogger.setLevel(debugLevel);
+ }
+
+ }
+
+ public static Level getAuditLevel() {
+ return auditLevel;
+ }
+
+ public static synchronized void setAuditLevel(Level level) {
+ auditLevel = level;
+ }
+
+ /**
+ * Sets Audit OFF or ON.
+ */
+ public static void setAuditLevel(String newAuditLevel) {
+
+ if (isOverrideLogbackLevel) {
+ if ("OFF".equalsIgnoreCase(newAuditLevel)) {
+ PolicyLogger.auditLevel = Level.OFF;
+ auditLogger.setLevel(auditLevel);
+ } else {
+ // --- set default value
+ auditLogger.setLevel(Level.INFO);
+ PolicyLogger.auditLevel = Level.INFO;
+ }
+ }
+ }
+
+ public static Level getMetricsLevel() {
+ return metricsLevel;
+ }
+
+ public static synchronized void setMetricsLevel(Level level) {
+ metricsLevel = level;
+ }
+
+ /**
+ * Sets Metrics OFF or ON.
+ */
+ public static void setMetricsLevel(String newMetricsLevel) {
+
+ if (isOverrideLogbackLevel) {
+ if ("OFF".equalsIgnoreCase(newMetricsLevel)) {
+ PolicyLogger.metricsLevel = Level.OFF;
+ metricsLogger.setLevel(metricsLevel);
+ } else {
+ // --- set default value
+ metricsLogger.setLevel(Level.INFO);
+ PolicyLogger.metricsLevel = Level.INFO;
+ }
+ }
+
+ }
+
+ public static Level getErrorLevel() {
+ return errorLevel;
+ }
+
+ public static synchronized void setErrorLevel(Level level) {
+ errorLevel = level;
+ }
+
+ /**
+ * Sets Error OFF or ON.
+ */
+ public static void setErrorLevel(String newErrorLevel) {
+
+ if (isOverrideLogbackLevel) {
+ if ("OFF".equalsIgnoreCase(newErrorLevel)) {
+ PolicyLogger.errorLevel = Level.OFF;
+ errorLogger.setLevel(errorLevel);
+ } else {
+ // --- set default value
+ errorLogger.setLevel(Level.ERROR);
+ PolicyLogger.errorLevel = Level.ERROR;
+ }
+ }
+ }
+
+ public static String getClassname() {
+ return classNameProp;
+ }
+
+ public static synchronized void setClassname(String name) {
+ classNameProp = name;
+ }
+
+ /**
+ * Populates MDC info.
+ *
+ * @param transId the transaction ID
+ * @return String
+ */
+ public static String postMDCInfoForEvent(String transId) {
+ MDC.clear();
+
+ String transactionId = transId;
+
+ if (transactionId == null || transactionId.isEmpty()) {
+ transactionId = UUID.randomUUID().toString();
+ }
+
+ if ("DROOLS".equalsIgnoreCase(component)) {
+ MDC.put(TARGET_ENTITY, "POLICY");
+ MDC.put(TARGET_SERVICE_NAME, "drools evaluate rule");
+ return postMDCInfoForEvent(transactionId, new DroolsPDPMDCInfo());
+ } else {
+ // For Xacml
+ MDC.put(TARGET_ENTITY, "POLICY");
+ MDC.put(TARGET_SERVICE_NAME, "PE Process");
+ }
+
+ MDC.put(MDC_REMOTE_HOST, "");
+ MDC.put(MDC_KEY_REQUEST_ID, transactionId);
+ MDC.put(MDC_SERVICE_NAME, "Policy.xacmlPdp");
+ MDC.put(MDC_SERVICE_INSTANCE_ID, "Policy.xacmlPdp.event");
+ try {
+ MDC.put(MDC_SERVER_FQDN, hostName);
+ MDC.put(MDC_SERVER_IP_ADDRESS, hostAddress);
+ } catch (Exception e) {
+ errorLogger.error(MessageCodes.EXCEPTION_ERROR, e, POLICY_LOGGER);
+ }
+
+ MDC.put(MDC_INSTANCE_UUID, "");
+ MDC.put(MDC_ALERT_SEVERITY, "");
+
+ SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
+
+ Instant startTime = Instant.now();
+ Instant endTime = Instant.now();
+
+ String formatedTime = sdf.format(Date.from(startTime));
+ MDC.put(BEGIN_TIME_STAMP, formatedTime);
+
+ // set default values for these required fields below, they can be overridden
+ formatedTime = sdf.format(Date.from(endTime));
+ MDC.put(END_TIME_STAMP, formatedTime);
+ MDC.put(ELAPSED_TIME, Long.toString(Duration.between(startTime, endTime).toMillis()));
+
+ MDC.put(PARTNER_NAME, "N/A");
+
+ MDC.put(STATUS_CODE, COMPLETE_STATUS);
+ MDC.put(RESPONSE_CODE, "N/A");
+ MDC.put(RESPONSE_DESCRIPTION, "N/A");
+
+
+ return transactionId;
+
+ }
+
+ /**
+ * Populate MDC Info using the passed in mdcInfo.
+ *
+ * @param transId the transaction ID
+ * @param mdcInfo the MDC info
+ * @return String
+ */
+ private static String postMDCInfoForEvent(String transId, MDCInfo mdcInfo) {
+
+ MDC.put(MDC_KEY_REQUEST_ID, transId);
+ if (mdcInfo != null && mdcInfo.getMDCInfo() != null && !mdcInfo.getMDCInfo().isEmpty()) {
+
+ ConcurrentMap<String, String> mdcMap = mdcInfo.getMDCInfo();
+ Iterator<String> keyIterator = mdcMap.keySet().iterator();
+ String key;
+
+ while (keyIterator.hasNext()) {
+ key = keyIterator.next();
+ MDC.put(key, mdcMap.get(key));
+ }
+ }
+
+ try {
+ MDC.put(MDC_SERVER_FQDN, hostName);
+ MDC.put(MDC_SERVER_IP_ADDRESS, hostAddress);
+ } catch (Exception e) {
+ errorLogger.error(MessageCodes.EXCEPTION_ERROR, e, POLICY_LOGGER);
+ }
+ Instant startTime = Instant.now();
+ Instant endTime = Instant.now();
+
+ SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
+
+ String formatedTime = sdf.format(Date.from(startTime));
+ MDC.put(BEGIN_TIME_STAMP, formatedTime);
+
+ // set default values for these required fields below, they can be overridden
+ formatedTime = sdf.format(Date.from(endTime));
+ MDC.put(END_TIME_STAMP, formatedTime);
+ MDC.put(ELAPSED_TIME, Long.toString(Duration.between(startTime, endTime).toMillis()));
+
+ return transId;
+ }
+
+ /**
+ * Sets transaction Id to MDC.
+ *
+ * @param eventObject event object
+ */
+ public static void postMDCInfoForEvent(Object eventObject) {
+ postMDCInfoForEvent("" + eventObject);
+ }
+
+ /**
+ * Set Timestamps for start, end and duration of logging a transaction.
+ */
+ private static void seTimeStamps() {
+
+ MDC.put(MDC_INSTANCE_UUID, "");
+ MDC.put(MDC_ALERT_SEVERITY, "");
+
+ SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
+
+ Instant startTime = Instant.now();
+ Instant endTime = Instant.now();
+
+ String formatedTime = sdf.format(Date.from(startTime));
+ MDC.put(BEGIN_TIME_STAMP, formatedTime);
+
+ // set default values for these required fields below, they can be overridden
+ formatedTime = sdf.format(Date.from(endTime));
+ MDC.put(END_TIME_STAMP, formatedTime);
+ MDC.put(ELAPSED_TIME, Long.toString(Duration.between(startTime, endTime).toMillis()));
+
+ MDC.put(PARTNER_NAME, "N/A");
+
+ MDC.put(STATUS_CODE, COMPLETE_STATUS);
+ MDC.put(RESPONSE_CODE, "N/A");
+ MDC.put(RESPONSE_DESCRIPTION, "N/A");
+
+ }
+
+ /**
+ * Sets transaction Id to MDC.
+ *
+ * @param transId the transaction ID
+ */
+ public static void setTransId(String transId) {
+
+ MDC.put(MDC_KEY_REQUEST_ID, transId);
+ }
+
+ /**
+ * Returns current transaction Id used in MDC.
+ *
+ * @return transId
+ */
+ public static String getTransId() {
+
+ return MDC.get(MDC_KEY_REQUEST_ID);
+ }
+
+ /**
+ * Resets transaction Id in MDC for the rule triggered by this event.
+ *
+ * @param transId the transaction ID
+ * @return String
+ */
+ public static String postMDCInfoForTriggeredRule(String transId) {
+
+ String transactionId = transId;
+
+ MDC.clear();
+
+ if (transactionId == null || transactionId.isEmpty()) {
+ transactionId = UUID.randomUUID().toString();
+ }
+ MDC.put(MDC_REMOTE_HOST, "");
+ MDC.put(MDC_KEY_REQUEST_ID, transactionId);
+ MDC.put(MDC_SERVICE_NAME, "Policy.droolsPdp");
+ MDC.put(MDC_SERVICE_INSTANCE_ID, "");
+ try {
+ MDC.put(MDC_SERVER_FQDN, hostName);
+ MDC.put(MDC_SERVER_IP_ADDRESS, hostAddress);
+ } catch (Exception e) {
+ errorLogger.error(MessageCodes.EXCEPTION_ERROR, e, POLICY_LOGGER);
+ }
+ MDC.put(MDC_INSTANCE_UUID, "");
+ MDC.put(MDC_ALERT_SEVERITY, "");
+ MDC.put(STATUS_CODE, COMPLETE_STATUS);
+
+ return transactionId;
+
+ }
+
+ /**
+ * Resets transaction Id in MDC for the rule triggered by this event.
+ *
+ * @param obj object
+ */
+ public static void postMDCUUIDForTriggeredRule(Object obj) {
+
+ postMDCInfoForTriggeredRule("" + obj);
+
+ }
+
+ // ************************************************************************************************
+ /**
+ * Records the Info event with String [] arguments.
+ *
+ * @param msg the message code
+ * @param className the class name
+ * @param arguments the messages
+ */
+ public static void info(MessageCodes msg, String className, String... arguments) {
+ MDC.put(classNameProp, className);
+ debugLogger.info(msg, arguments);
+ }
+
+ /**
+ * Records only one String message with its class name.
+ *
+ * @param className the class name
+ * @param arg0 the message
+ */
+ public static void info(String className, String arg0) {
+ MDC.put(classNameProp, className);
+ debugLogger.info(MessageCodes.GENERAL_INFO, arg0);
+ }
+
+
+ /**
+ * Records only one String message.
+ *
+ * @param arg0 the message
+ */
+ public static void info(Object arg0) {
+ MDC.put(classNameProp, "");
+ debugLogger.info(MessageCodes.GENERAL_INFO, String.valueOf(arg0));
+ }
+
+ /**
+ * Records a message with passed in message code, Throwable object, a list of string values.
+ *
+ * @param msg the message code
+ * @param arg0 the throwable
+ * @param arguments the messages
+ */
+ public static void info(MessageCodes msg, Throwable arg0, String... arguments) {
+ MDC.put(classNameProp, "");
+ String arguments2 = getNormalizedStackTrace(arg0, arguments);
+ debugLogger.info(msg, arguments2);
+ }
+
+ /**
+ * Records a message with passed in message code, class name, Throwable object, a list of string
+ * values.
+ *
+ * @param msg the message code
+ * @param className the class name
+ * @param arg0 the throwable
+ * @param arguments the messages
+ */
+ public static void info(MessageCodes msg, String className, Throwable arg0, String... arguments) {
+ MDC.put(classNameProp, className);
+ String arguments2 = getNormalizedStackTrace(arg0, arguments);
+ debugLogger.info(msg, arguments2);
+ }
+
+ /**
+ * Records only one String message with its class name.
+ *
+ * @param arg0 log message
+ * @param className class name
+ */
+ public static void warn(String className, String arg0) {
+ MDC.put(classNameProp, className);
+ debugLogger.warn(MessageCodes.GENERAL_INFO, arg0);
+ }
+
+ /**
+ * Records only one String message.
+ *
+ * @param arg0 the message
+ */
+ public static void warn(Object arg0) {
+ MDC.put(classNameProp, "");
+ debugLogger.warn(MessageCodes.GENERAL_WARNING, "" + arg0);
+ }
+
+ /**
+ * Records only one String message without its class name passed in.
+ *
+ * @param arg0 the message
+ */
+ public static void warn(String arg0) {
+ MDC.put(classNameProp, "");
+ debugLogger.warn(MessageCodes.GENERAL_WARNING, arg0);
+ }
+
+ /**
+ * Records a message with passed in message code, class name and a list of string values.
+ *
+ * @param msg the message code
+ * @param className the class name
+ * @param arguments the messages
+ */
+ public static void warn(MessageCodes msg, String className, String... arguments) {
+ MDC.put(classNameProp, className);
+ debugLogger.warn(msg, arguments);
+ }
+
+ /**
+ * Records a message with passed in message code, Throwable object, a list of string values.
+ *
+ * @param msg the message code
+ * @param arg0 the throwable
+ * @param arguments the messages
+ */
+ public static void warn(MessageCodes msg, Throwable arg0, String... arguments) {
+ MDC.put(classNameProp, "");
+ String arguments2 = getNormalizedStackTrace(arg0, arguments);
+ debugLogger.warn(msg, arguments2);
+ }
+
+ /**
+ * Records a message with passed in message code, Throwable object, a list of string values.
+ *
+ * @param msg the message code
+ * @param className the class name
+ * @param arg0 the throwable
+ * @param arguments the messages
+ */
+ public static void warn(MessageCodes msg, String className, Throwable arg0, String... arguments) {
+ MDC.put(classNameProp, className);
+ String arguments2 = getNormalizedStackTrace(arg0, arguments);
+ debugLogger.warn(msg, arguments2);
+ }
+
+ /**
+ * Records only one String message with its class name.
+ *
+ * @param className class name
+ * @param arg0 log message
+ */
+ public static void error(String className, String arg0) {
+ MDC.put(classNameProp, className);
+ if (ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null) {
+ MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
+ MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
+
+ }
+ errorLogger.error(MessageCodes.GENERAL_ERROR, arg0);
+ }
+
+ /**
+ * Records only one String message.
+ *
+ * @param arg0 the message
+ */
+ public static void error(String arg0) {
+ MDC.put(classNameProp, "");
+ MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
+
+ if (ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null) {
+ MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
+ MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
+
+ }
+ errorLogger.error(MessageCodes.GENERAL_ERROR, arg0);
+ }
+
+ /**
+ * Records only one String message.
+ *
+ * @param arg0 the message
+ */
+ public static void error(Object arg0) {
+ MDC.put(classNameProp, "");
+ MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
+
+ if (ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null) {
+ MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
+ MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
+
+ }
+ errorLogger.error(MessageCodes.GENERAL_ERROR, "" + arg0);
+ }
+
+ /**
+ * Records a message with passed in message code, Throwable object, a list of string values.
+ *
+ * @param msg the message code
+ * @param arg0 the throwable
+ * @param arguments the messages
+ */
+ public static void error(MessageCodes msg, Throwable arg0, String... arguments) {
+ MDC.put(classNameProp, "");
+ MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
+
+ if (ErrorCodeMap.getErrorCodeInfo(msg) != null) {
+ MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(msg).getErrorCode());
+ MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(msg).getErrorDesc());
+
+ }
+ String arguments2 = getNormalizedStackTrace(arg0, arguments);
+ errorLogger.error(msg, arguments2);
+ }
+
+ /**
+ * Records a message with passed in message code, class name, Throwable object, a list of string
+ * values.
+ *
+ * @param msg the message code
+ * @param className the class name
+ * @param arg0 the throwable
+ * @param arguments the messages
+ */
+ public static void error(MessageCodes msg, String className, Throwable arg0, String... arguments) {
+ MDC.put(classNameProp, className);
+ MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
+
+ if (ErrorCodeMap.getErrorCodeInfo(msg) != null) {
+ MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(msg).getErrorCode());
+ MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(msg).getErrorDesc());
+
+ }
+ String arguments2 = getNormalizedStackTrace(arg0, arguments);
+ errorLogger.error(msg, arguments2);
+ }
+
+ /**
+ * Records a message with passed in message code and a list of string values.
+ *
+ * @param msg the message code
+ * @param arguments the messages
+ */
+ public static void error(MessageCodes msg, String... arguments) {
+ MDC.put(classNameProp, "");
+ MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
+
+ if (ErrorCodeMap.getErrorCodeInfo(msg) != null) {
+ MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(msg).getErrorCode());
+ MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(msg).getErrorDesc());
+
+ }
+ errorLogger.error(msg, arguments);
+ }
+
+ /**
+ * Records a message with passed in message code and a list of string values.
+ *
+ * @param msg the message code
+ * @param arguments the messages
+ */
+ public static void debug(MessageCodes msg, String... arguments) {
+ MDC.put(classNameProp, "");
+ debugLogger.debug(msg, arguments);
+ }
+
+ /**
+ * Records only one String message with its class name.
+ *
+ * @param className the class name
+ * @param arg0 the message
+ */
+ public static void debug(String className, String arg0) {
+ MDC.put(classNameProp, className);
+ debugLogger.debug(MessageCodes.GENERAL_INFO, arg0);
+ }
+
+ /**
+ * Records only one String message.
+ *
+ * @param arg0 the message
+ */
+ public static void debug(String arg0) {
+ MDC.put(classNameProp, "");
+ debugLogger.debug(arg0);
+ }
+
+ /**
+ * Records only one String message.
+ *
+ * @param arg0 the message
+ */
+ public static void debug(Object arg0) {
+
+ MDC.put(classNameProp, "");
+ debugLogger.debug("" + arg0);
+ }
+
+ /**
+ * Records a message with passed in message code, hrowable object, a list of string values.
+ *
+ * @param msg the message code
+ * @param arg0 the throwable
+ * @param arguments the messages
+ */
+ public static void debug(MessageCodes msg, Throwable arg0, String... arguments) {
+ MDC.put(classNameProp, "");
+ String arguments2 = getNormalizedStackTrace(arg0, arguments);
+ debugLogger.debug(msg, arguments2);
+ }
+
+ /**
+ * Records a message with passed in message code, class name, Throwable object, a list of
+ * string. values
+ *
+ * @param msg the message code
+ * @param className the class name
+ * @param arg0 the throwable
+ * @param arguments the messages
+ */
+ public static void debug(MessageCodes msg, String className, Throwable arg0, String... arguments) {
+ MDC.put(classNameProp, className);
+ String arguments2 = getNormalizedStackTrace(arg0, arguments);
+ debugLogger.debug(msg, arguments2);
+ }
+
+ /**
+ * Records only one String message with its class name.
+ *
+ * @param className the class name
+ * @param arg0 the message
+ */
+ public static void audit(String className, Object arg0) {
+ MDC.put(STATUS_CODE, COMPLETE_STATUS);
+ MDC.put(classNameProp, className);
+ auditLogger.info("" + arg0);
+ }
+
+ /**
+ * Records only one String message.
+ *
+ * @param arg0 the message
+ */
+ public static void audit(Object arg0) {
+ MDC.put(STATUS_CODE, COMPLETE_STATUS);
+ MDC.put(classNameProp, "");
+ auditLogger.info("" + arg0);
+ }
+
+ /**
+ * returns true for enabled, false for not enabled.
+ */
+ public static boolean isDebugEnabled() {
+
+ return debugLogger.isDebugEnabled();
+ }
+
+ /**
+ * returns true for enabled, false for not enabled.
+ */
+ public static boolean isErrorEnabled() {
+
+ return errorLogger.isErrorEnabled();
+ }
+
+ /**
+ * returns true for enabled, false for not enabled.
+ */
+ public static boolean isWarnEnabled() {
+
+ return debugLogger.isWarnEnabled();
+ }
+
+ /**
+ * returns true for enabled, false for not enabled.
+ */
+ public static boolean isInfoEnabled1() {
+
+ return debugLogger.isInfoEnabled();
+ }
+
+ /**
+ * returns true for enabled, false for not enabled.
+ */
+ public static boolean isAuditEnabled() {
+
+ return debugLogger.isInfoEnabled();
+ }
+
+ /**
+ * returns true for enabled, false for not enabled.
+ */
+ public static boolean isInfoEnabled() {
+
+ return debugLogger.isInfoEnabled();
+ }
+
+ /**
+ * Records only one String message with its class name.
+ *
+ * @param className the class name
+ * @param arg0 the message
+ */
+ public static void trace(String className, String arg0) {
+ MDC.put(classNameProp, className);
+ debugLogger.trace(MessageCodes.GENERAL_INFO, arg0);
+ }
+
+ /**
+ * Records only one String message.
+ *
+ * @param arg0 the message
+ */
+ public static void trace(Object arg0) {
+
+ MDC.put(classNameProp, "");
+ debugLogger.trace("" + arg0);
+ }
+
+ /**
+ * Records the starting time of the event with its request Id as the key.
+ *
+ * @param eventId the event ID
+ */
+ public static void recordAuditEventStart(String eventId) {
+
+ MDC.put(STATUS_CODE, COMPLETE_STATUS);
+ postMDCInfoForEvent(eventId);
+
+ if (eventTracker == null) {
+ eventTracker = new EventTrackInfo();
+ }
+ EventData event = new EventData();
+ event.setRequestID(eventId);
+ event.setStartTime(Instant.now());
+ eventTracker.storeEventData(event);
+ MDC.put(MDC_KEY_REQUEST_ID, eventId);
+ debugLogger.info("CONCURRENTHASHMAP_LIMIT : " + concurrentHashMapLimit);
+ // --- Tracking the size of the concurrentHashMap, if it is above limit, keep EventTrack
+ // Timer running
+ int size = eventTracker.getEventInfo().size();
+
+ debugLogger.info("EventInfo concurrentHashMap Size : " + size + " on " + new Date());
+ debugLogger.info("isEventTrackerRunning : " + isEventTrackerRunning);
+
+ if (size >= concurrentHashMapLimit) {
+
+
+ if (!isEventTrackerRunning) {
+
+ startCleanUp();
+ isEventTrackerRunning = true;
+ }
+
+ } else if (size <= stopCheckPoint && isEventTrackerRunning) {
+
+ stopCleanUp();
+ }
+ }
+
+ /**
+ * Records the starting time of the event with its request Id as the key.
+ *
+ * @param eventId the event ID
+ */
+ public static void recordAuditEventStart(UUID eventId) {
+
+ if (eventId == null) {
+ return;
+ }
+
+ if (eventTracker == null) {
+ eventTracker = new EventTrackInfo();
+ }
+
+ recordAuditEventStart(eventId.toString());
+
+ }
+
+ /**
+ * Records the ending time of the event with its request Id as the key.
+ *
+ * @param eventId the event ID
+ * @param rule the rule
+ */
+ public static void recordAuditEventEnd(String eventId, String rule) {
+
+ if (eventTracker == null) {
+ return;
+ }
+ if (eventId == null) {
+ return;
+ }
+
+ creatAuditEventTrackingRecord(eventId, rule, "");
+
+ }
+
+ /**
+ * Records the ending time of the event with its request Id as the key.
+ *
+ * @param eventId the event ID
+ * @param rule the rule
+ * @param policyVersion the policy version
+ */
+ public static void recordAuditEventEnd(String eventId, String rule, String policyVersion) {
+
+ if (eventTracker == null) {
+ return;
+ }
+ if (eventId == null) {
+ return;
+ }
+
+ creatAuditEventTrackingRecord(eventId, rule, policyVersion);
+
+ }
+
+ /**
+ * Records the ending time of the event with its request Id as the key.
+ *
+ * @param eventId the event ID
+ * @param rule the rule
+ * @param policyVersion the policy version
+ */
+ public static void recordAuditEventEnd(UUID eventId, String rule, String policyVersion) {
+
+ if (eventId == null) {
+ return;
+ }
+
+ recordAuditEventEnd(eventId.toString(), rule, policyVersion);
+
+ }
+
+
+ /**
+ * Records the ending time of the event with its request Id as the key.
+ *
+ * @param eventId the event ID
+ * @param rule the rule
+ */
+ public static void recordAuditEventEnd(UUID eventId, String rule) {
+
+ if (eventId == null) {
+ return;
+ }
+
+ recordAuditEventEnd(eventId.toString(), rule);
+
+ }
+
+ /**
+ * Records the ending time of the event with its request Id as the key.
+ *
+ * @param eventId the event ID
+ * @param rule the rule
+ * @param policyVersion the policy version
+ */
+ public static void creatAuditEventTrackingRecord(String eventId, String rule, String policyVersion) {
+
+ if (eventTracker == null) {
+ return;
+ }
+
+ EventData event = eventTracker.getEventDataByRequestID(eventId);
+
+ if (event != null) {
+ Instant endTime = event.getEndTime();
+ if (endTime == null) {
+ endTime = Instant.now();
+ }
+ MDC.put(STATUS_CODE, COMPLETE_STATUS);
+ recordAuditEventStartToEnd(eventId, rule, event.getStartTime(), endTime, policyVersion);
+ }
+ }
+
+ /**
+ * Records the ending time of the event with its request Id as the key.
+ *
+ * @param eventId the event ID
+ * @param rule the rule
+ */
+ public static void creatAuditEventTrackingRecord(UUID eventId, String rule) {
+
+ if (eventId == null) {
+ return;
+ }
+
+ if (eventTracker == null) {
+ return;
+ }
+
+ EventData event = eventTracker.getEventDataByRequestID(eventId.toString());
+
+ if (event != null) {
+ Instant endTime = event.getEndTime();
+ if (endTime == null) {
+ endTime = Instant.now();
+ }
+
+ recordAuditEventStartToEnd(eventId.toString(), rule, event.getStartTime(), endTime, "N/A");
+ }
+ }
+
+ public static EventTrackInfo getEventTracker() {
+ return eventTracker;
+ }
+
+ /**
+ * Records the audit with an event starting and ending times.
+ *
+ * @param eventId the event ID
+ * @param rule the rule
+ * @param startTime the start time
+ * @param endTime the end time
+ * @param policyVersion the policy version
+ */
+ public static void recordAuditEventStartToEnd(String eventId, String rule, Instant startTime, Instant endTime,
+ String policyVersion) {
+
+ if (startTime == null || endTime == null) {
+ return;
+ }
+ if (eventId != null && !eventId.isEmpty()) {
+ MDC.put(MDC_KEY_REQUEST_ID, eventId);
+ }
+
+ SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
+
+ String formatedTime = sdf.format(Date.from(startTime));
+ MDC.put(BEGIN_TIME_STAMP, formatedTime);
+
+ // set default values for these required fields below, they can be overridden
+ formatedTime = sdf.format(Date.from(endTime));
+ MDC.put(END_TIME_STAMP, formatedTime);
+
+ MDC.put(RESPONSE_CODE, "N/A");
+ MDC.put(RESPONSE_DESCRIPTION, "N/A");
+
+ long ns = Duration.between(startTime, endTime).toMillis();
+
+ MDC.put(ELAPSED_TIME, Long.toString(ns));
+
+ auditLogger.info(MessageCodes.RULE_AUDIT_START_END_INFO, MDC.get(MDC_SERVICE_NAME), rule, startTime.toString(),
+ endTime.toString(), Long.toString(ns), policyVersion);
+
+ // --- remove the record from the concurrentHashMap
+ if (eventTracker != null && eventTracker.getEventDataByRequestID(eventId) != null) {
+
+ eventTracker.remove(eventId);
+ debugLogger.info("eventTracker.remove(" + eventId + ")");
+
+ }
+ }
+
+ /**
+ * Records the metrics with an event Id and log message.
+ *
+ * @param eventId the event ID
+ * @param arg1 the message
+ */
+ public static void recordMetricEvent(String eventId, String arg1) {
+
+ seTimeStamps();
+
+ String serviceName = MDC.get(MDC_SERVICE_NAME);
+ MDC.put(MDC_KEY_REQUEST_ID, eventId);
+ metricsLogger.info(MessageCodes.RULE_AUDIT_END_INFO, serviceName, arg1);
+
+ }
+
+ /**
+ * Records the metrics with an event Id, class name and log message.
+ *
+ * @param eventId the event ID
+ * @param className the class name
+ * @param arg1 the message
+ */
+ public static void recordMetricEvent(String eventId, String className, String arg1) {
+
+ seTimeStamps();
+
+ MDC.put(classNameProp, className);
+ String serviceName = MDC.get(MDC_SERVICE_NAME);
+ MDC.put(MDC_KEY_REQUEST_ID, eventId);
+ metricsLogger.info(MessageCodes.RULE_AUDIT_END_INFO, serviceName, arg1);
+ }
+
+ /**
+ * Records the metrics with an event Id and log message.
+ *
+ * @param eventId the event ID
+ * @param arg1 the message
+ */
+ public static void recordMetricEvent(UUID eventId, String arg1) {
+
+ if (eventId == null) {
+ return;
+ }
+ String serviceName = MDC.get(MDC_SERVICE_NAME);
+ MDC.put(MDC_KEY_REQUEST_ID, eventId.toString());
+ metricsLogger.info(MessageCodes.RULE_AUDIT_END_INFO, serviceName, arg1);
+ }
+
+ /**
+ * Records a String message for metrics logs.
+ *
+ * @param arg0 the message
+ */
+ public static void recordMetricEvent(String arg0) {
+ seTimeStamps();
+ String serviceName = MDC.get(MDC_SERVICE_NAME);
+ metricsLogger.info(MessageCodes.RULE_METRICS_INFO, serviceName, arg0);
+ }
+
+
+ /**
+ * Records the metrics event with a String message.
+ *
+ * @param arg0 the message
+ */
+ public static void metrics(String arg0) {
+ String serviceName = MDC.get(MDC_SERVICE_NAME);
+ metricsLogger.info(MessageCodes.RULE_METRICS_INFO, serviceName, arg0);
+ }
+
+ /**
+ * Records the metrics event with a class name and a String message.
+ *
+ * @param arg0 the message
+ */
+ public static void metrics(String className, Object arg0) {
+ seTimeStamps();
+ MDC.put(classNameProp, className);
+ String serviceName = MDC.get(MDC_SERVICE_NAME);
+ metricsLogger.info(MessageCodes.RULE_METRICS_INFO, serviceName, "" + arg0);
+ }
+
+ /**
+ * Records the metrics event with a String message.
+ *
+ * @param arg0 the message
+ */
+ public static void metrics(Object arg0) {
+ seTimeStamps();
+ MDC.put(classNameProp, "");
+ String serviceName = MDC.get(MDC_SERVICE_NAME);
+ metricsLogger.info(MessageCodes.RULE_METRICS_INFO, serviceName, "" + arg0);
+ }
+
+ /**
+ * Records the metrics event with a String message.
+ *
+ * @param arg0 the message
+ */
+ public static void metricsPrintln(String arg0) {
+ MDC.clear();
+ metricsLogger.info(arg0);
+ }
+
+ /**
+ * Removes all the return lines from the printStackTrace.
+ *
+ * @param throwable the throwable
+ * @param arguments the messages
+ */
+ private static String getNormalizedStackTrace(Throwable throwable, String... arguments) {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
- t.printStackTrace(pw);
- String newStValue = sw.toString().replace ('|', '!').replace ("\n", " - ");
+ throwable.printStackTrace(pw);
+ String newStValue = sw.toString().replace('|', '!').replace("\n", " - ");
int curSize = arguments == null ? 0 : arguments.length;
StringBuilder newArgument = new StringBuilder();
- for(int i=0; i<curSize; i++) {
- newArgument.append(arguments[i]);
- newArgument.append(":");
+ for (int i = 0; i < curSize; i++) {
+ newArgument.append(arguments[i]);
+ newArgument.append(":");
+ }
+ newArgument.append(newStValue);
+ return newArgument.toString();
+ }
+
+ /**
+ * Starts the process of cleaning up the ConcurrentHashMap of EventData.
+ */
+ private static void startCleanUp() {
+
+ if (!isEventTrackerRunning) {
+ ttrcker = new EventTrackInfoHandler();
+ timer = new Timer(true);
+ timer.scheduleAtFixedRate(ttrcker, timerDelayTime, checkInterval);
+ debugLogger.info("EventTrackInfoHandler begins! : " + new Date());
+ } else {
+ debugLogger.info("Timer is still running : " + new Date());
+
+ }
+ }
+
+
+ /**
+ * Stops the process of cleaning up the ConcurrentHashMap of EventData.
+ */
+ private static void stopCleanUp() {
+
+ if (isEventTrackerRunning && timer != null) {
+ timer.cancel();
+ timer.purge();
+ debugLogger.info("Timer stopped: " + new Date());
+ } else {
+ debugLogger.info("Timer was already stopped : " + new Date());
+
}
- newArgument.append(newStValue);
- return newArgument.toString();
- }
-
- /**
- * Starts the process of cleaning up the ConcurrentHashMap of EventData
- */
- private static void startCleanUp(){
-
- if(!isEventTrackerRunning) {
- ttrcker = new EventTrackInfoHandler();
- timer = new Timer(true);
- timer.scheduleAtFixedRate(ttrcker, timerDelayTime, checkInterval);
- debugLogger.info("EventTrackInfoHandler begins! : " + new Date());
- }else{
- debugLogger.info("Timer is still running : " + new Date());
-
- }
- }
-
-
- /**
- * Stops the process of cleaning up the ConcurrentHashMap of EventData
- */
- private static void stopCleanUp(){
-
- if(isEventTrackerRunning && timer != null){
- timer.cancel();
- timer.purge();
- debugLogger.info("Timer stopped: " + new Date());
- }else{
- debugLogger.info("Timer was already stopped : " + new Date());
-
- }
- isEventTrackerRunning = false;
-
- }
-
- /**
- * Loads all the attributes from policyLogger.properties file
- */
- public static LoggerType init(Properties properties) {
-
- Properties loggerProperties;
- if (properties != null) {
- loggerProperties = properties;
- } else {
- System.err.println("PolicyLogger cannot find its configuration - continue");
- loggerProperties = new Properties();
- }
-
- LoggerType loggerType = LoggerType.EELF;
-
- // fetch and verify definitions of some properties
- try{
-
- int timerDelayTimeProp = Integer.parseInt(loggerProperties.getProperty("timer.delay.time", Integer.toString(1000)));
- int checkIntervalProp = Integer.parseInt(loggerProperties.getProperty("check.interval", Integer.toString(30000)));
- int expiredDateProp = Integer.parseInt(loggerProperties.getProperty("event.expired.time", Integer.toString(86400)));
- int concurrentHashMapLimitProp = Integer.parseInt(loggerProperties.getProperty("concurrentHashMap.limit", Integer.toString(5000)));
- int stopCheckPointProp = Integer.parseInt(loggerProperties.getProperty("stop.check.point", Integer.toString(2500)));
- String loggerTypeProp = loggerProperties.getProperty("logger.type",loggerType.toString());
-
- String debugLevelProp = loggerProperties.getProperty("debugLogger.level","INFO");
- String metricsLevelProp = loggerProperties.getProperty("metricsLogger.level","ON");
- String auditLevelProp = loggerProperties.getProperty("audit.level","ON");
- String errorLevelProp = loggerProperties.getProperty("error.level","ON");
- component = loggerProperties.getProperty("policy.component","DROOLS");
- String overrideLogbackLevel = loggerProperties.getProperty("override.logback.level.setup");
-
- if(overrideLogbackLevel != null && !overrideLogbackLevel.isEmpty()) {
- if("TRUE".equalsIgnoreCase(overrideLogbackLevel)){
- isOverrideLogbackLevel = true;
- }else{
- isOverrideLogbackLevel = false;
- }
- }
-
-
- if (debugLevelProp != null && !debugLevelProp.isEmpty()){
-
- PolicyLogger.setDebugLevel(Level.valueOf(debugLevelProp));
-
- }
- //Only check if it is to turn off or not
- if (errorLevelProp != null && errorLevelProp.equalsIgnoreCase(Level.OFF.toString())){
-
- PolicyLogger.setErrorLevel(Level.valueOf(errorLevelProp));
-
- }
- //Only check if it is to turn off or not
- if (metricsLevelProp != null && metricsLevelProp.equalsIgnoreCase(Level.OFF.toString())){
-
- PolicyLogger.setMetricsLevel(Level.valueOf(metricsLevelProp));
-
- }
- //Only check if it is to turn off or not
- if (auditLevelProp != null && auditLevelProp.equalsIgnoreCase(Level.OFF.toString())){
-
- PolicyLogger.setAuditLevel(Level.valueOf(auditLevelProp));
-
- }
-
- if(isOverrideLogbackLevel){
-
- debugLogger.setLevel(debugLevel);
- metricsLogger.setLevel(metricsLevel);
- auditLogger.setLevel(auditLevel);
- errorLogger.setLevel(errorLevel);
-
+ isEventTrackerRunning = false;
+
+ }
+
+ /**
+ * Loads all the attributes from policyLogger.properties file
+ */
+ public static LoggerType init(Properties properties) {
+
+ Properties loggerProperties;
+ if (properties != null) {
+ loggerProperties = properties;
+ } else {
+ System.err.println("PolicyLogger cannot find its configuration - continue");
+ loggerProperties = new Properties();
+ }
+
+ LoggerType loggerType = LoggerType.EELF;
+
+ // fetch and verify definitions of some properties
+ try {
+
+ final int timerDelayTimeProp =
+ Integer.parseInt(loggerProperties.getProperty("timer.delay.time", Integer.toString(1000)));
+ final int checkIntervalProp =
+ Integer.parseInt(loggerProperties.getProperty("check.interval", Integer.toString(30000)));
+ final int expiredDateProp =
+ Integer.parseInt(loggerProperties.getProperty("event.expired.time", Integer.toString(86400)));
+ final int concurrentHashMapLimitProp =
+ Integer.parseInt(loggerProperties.getProperty("concurrentHashMap.limit", Integer.toString(5000)));
+ final int stopCheckPointProp =
+ Integer.parseInt(loggerProperties.getProperty("stop.check.point", Integer.toString(2500)));
+ final String loggerTypeProp = loggerProperties.getProperty("logger.type", loggerType.toString());
+
+ final String debugLevelProp = loggerProperties.getProperty("debugLogger.level", "INFO");
+ final String metricsLevelProp = loggerProperties.getProperty("metricsLogger.level", "ON");
+ final String auditLevelProp = loggerProperties.getProperty("audit.level", "ON");
+ final String errorLevelProp = loggerProperties.getProperty("error.level", "ON");
+ component = loggerProperties.getProperty("policy.component", "DROOLS");
+ final String overrideLogbackLevel = loggerProperties.getProperty("override.logback.level.setup");
+
+ if (overrideLogbackLevel != null && !overrideLogbackLevel.isEmpty()) {
+ if ("TRUE".equalsIgnoreCase(overrideLogbackLevel)) {
+ isOverrideLogbackLevel = true;
+ } else {
+ isOverrideLogbackLevel = false;
+ }
+ }
+
+
+ if (debugLevelProp != null && !debugLevelProp.isEmpty()) {
+
+ PolicyLogger.setDebugLevel(Level.valueOf(debugLevelProp));
+
+ }
+ // Only check if it is to turn off or not
+ if (errorLevelProp != null && errorLevelProp.equalsIgnoreCase(Level.OFF.toString())) {
+
+ PolicyLogger.setErrorLevel(Level.valueOf(errorLevelProp));
+
+ }
+ // Only check if it is to turn off or not
+ if (metricsLevelProp != null && metricsLevelProp.equalsIgnoreCase(Level.OFF.toString())) {
+
+ PolicyLogger.setMetricsLevel(Level.valueOf(metricsLevelProp));
+
+ }
+ // Only check if it is to turn off or not
+ if (auditLevelProp != null && auditLevelProp.equalsIgnoreCase(Level.OFF.toString())) {
+
+ PolicyLogger.setAuditLevel(Level.valueOf(auditLevelProp));
+
+ }
+
+ if (isOverrideLogbackLevel) {
+
+ debugLogger.setLevel(debugLevel);
+ metricsLogger.setLevel(metricsLevel);
+ auditLogger.setLevel(auditLevel);
+ errorLogger.setLevel(errorLevel);
+
}
- isEventTrackerRunning = false;
-
- debugLogger.info("timerDelayTime value: " + timerDelayTimeProp);
-
- debugLogger.info("checkInterval value: " + checkIntervalProp);
-
- debugLogger.info("expiredDate value: " + expiredDateProp);
-
- debugLogger.info("concurrentHashMapLimit value: " + concurrentHashMapLimitProp);
-
- debugLogger.info("loggerType value: " + loggerTypeProp);
-
- debugLogger.info("debugLogger level: " + debugLevelProp);
-
- debugLogger.info("component: " + component);
-
- if (timerDelayTimeProp > 0){
-
- timerDelayTime = timerDelayTimeProp;
-
- }else {
- MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
- if(ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null){
- MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
- MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
-
- }
- errorLogger.error("failed to get the timer.delay.time, so use its default value: " + timerDelayTime);
- }
-
- if (checkIntervalProp > 0){
-
- checkInterval = checkIntervalProp;
-
- }else {
- MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
- if(ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null){
- MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
- MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
-
- }
- errorLogger.error("failed to get the check.interval, so use its default value: " + checkInterval);
- }
-
- if (expiredDateProp > 0){
-
- expiredTime = expiredDateProp;
-
- }else {
- MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
-
- if(ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null){
- MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
- MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
-
- }
- errorLogger.error("failed to get the event.expired.time, so use its default value: " + expiredTime);
- }
-
- if (concurrentHashMapLimitProp > 0){
-
- concurrentHashMapLimit = concurrentHashMapLimitProp;
-
- }else {
- MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
- if(ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null){
- MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
- MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
-
- }
- errorLogger.error("failed to get the concurrentHashMap.limit, so use its default value: " + concurrentHashMapLimit);
- }
-
- if (stopCheckPointProp > 0){
-
- stopCheckPoint = stopCheckPointProp;
-
- }else {
- MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
- if(ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null){
- MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
- MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
-
- }
- errorLogger.error("failed to get the stop.check.point, so use its default value: " + stopCheckPoint);
- }
-
- if (loggerTypeProp != null){
-
- if ("EELF".equalsIgnoreCase(loggerTypeProp)){
-
- loggerType = LoggerType.EELF;
-
- }else if ("LOG4J".equalsIgnoreCase(loggerTypeProp)){
-
- loggerType = LoggerType.LOG4J;
-
- }else if ("SYSTEMOUT".equalsIgnoreCase(loggerTypeProp)){
-
- loggerType = LoggerType.SYSTEMOUT;
-
- }
-
- }
-
- if (debugLevelProp != null && !debugLevelProp.isEmpty()){
-
- debugLevel = Level.valueOf(debugLevelProp);
-
- }
- //Only check if it is to turn off or not
- if (errorLevelProp != null && errorLevelProp.equalsIgnoreCase(Level.OFF.toString())){
-
- errorLevel = Level.valueOf(errorLevelProp);
-
- }
- //Only check if it is to turn off or not
- if (metricsLevelProp != null && metricsLevelProp.equalsIgnoreCase(Level.OFF.toString())){
-
- metricsLevel = Level.valueOf(metricsLevelProp);
-
- }
- //Only check if it is to turn off or not
- if (auditLevelProp != null && auditLevelProp.equalsIgnoreCase(Level.OFF.toString())){
-
- auditLevel = Level.valueOf(auditLevelProp);
-
- }
-
- }catch(Exception e){
- MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
-
- if(ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null){
- MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
- MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
-
- }
- errorLogger.error("failed to get the policyLogger.properties, so use their default values",e);
- }
-
- return loggerType;
-
- }
-
- /**
- * Sets Debug Level
- */
- public static void setDebugLevel(String newDebugLevel){
-
- if(isOverrideLogbackLevel){
- PolicyLogger.debugLevel = Level.valueOf(newDebugLevel);
- debugLogger.setLevel(debugLevel);
- }
-
- }
-
- /**
- * Sets Error OFF or ON
- */
- public static void setErrorLevel(String newErrorLevel){
-
- if(isOverrideLogbackLevel){
- if("OFF".equalsIgnoreCase(newErrorLevel)){
- PolicyLogger.errorLevel = Level.OFF;
- errorLogger.setLevel(errorLevel);
- }else{
- //--- set default value
- errorLogger.setLevel(Level.ERROR);
- PolicyLogger.errorLevel = Level.ERROR;
- }
- }
- }
-
- /**
- * Sets Metrics OFF or ON
- */
- public static void setMetricsLevel(String newMetricsLevel){
-
- if(isOverrideLogbackLevel){
- if("OFF".equalsIgnoreCase(newMetricsLevel)){
- PolicyLogger.metricsLevel = Level.OFF;
- metricsLogger.setLevel(metricsLevel);
- }else {
- //--- set default value
- metricsLogger.setLevel(Level.INFO);
- PolicyLogger.metricsLevel = Level.INFO;
- }
- }
-
- }
-
- /**
- * Sets Audit OFF or ON
- */
- public static void setAuditLevel(String newAuditLevel){
-
- if(isOverrideLogbackLevel){
- if("OFF".equalsIgnoreCase(newAuditLevel)){
- PolicyLogger.auditLevel = Level.OFF;
- auditLogger.setLevel(auditLevel);
- }else {
- //--- set default value
- auditLogger.setLevel(Level.INFO);
- PolicyLogger.auditLevel = Level.INFO;
- }
- }
- }
-
- /**
- * Returns true for overriding logback levels; returns false for not
- */
- public static boolean isOverrideLogbackLevel(){
-
- return isOverrideLogbackLevel;
- }
-
- /**
- * Sets true for overriding logback levels; sets false for not
- */
- public static void setOverrideLogbackLevel(boolean odl){
-
- isOverrideLogbackLevel = odl;
-
- }
- /**
- * Sets server information to MDC
- */
- public static void setServerInfo(String serverHost, String serverPort){
- MDC.put(SERVER_NAME, serverHost+":"+serverPort);
- }
+ isEventTrackerRunning = false;
+
+ debugLogger.info("timerDelayTime value: " + timerDelayTimeProp);
+
+ debugLogger.info("checkInterval value: " + checkIntervalProp);
+
+ debugLogger.info("expiredDate value: " + expiredDateProp);
+
+ debugLogger.info("concurrentHashMapLimit value: " + concurrentHashMapLimitProp);
+
+ debugLogger.info("loggerType value: " + loggerTypeProp);
+
+ debugLogger.info("debugLogger level: " + debugLevelProp);
+
+ debugLogger.info("component: " + component);
+
+ if (timerDelayTimeProp > 0) {
+
+ timerDelayTime = timerDelayTimeProp;
+
+ } else {
+ MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
+ if (ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null) {
+ MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
+ MDC.put(ERROR_DESCRIPTION,
+ ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
+
+ }
+ errorLogger.error("failed to get the timer.delay.time, so use its default value: " + timerDelayTime);
+ }
+
+ if (checkIntervalProp > 0) {
+
+ checkInterval = checkIntervalProp;
+
+ } else {
+ MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
+ if (ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null) {
+ MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
+ MDC.put(ERROR_DESCRIPTION,
+ ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
+
+ }
+ errorLogger.error("failed to get the check.interval, so use its default value: " + checkInterval);
+ }
+
+ if (expiredDateProp > 0) {
+
+ expiredTime = expiredDateProp;
+
+ } else {
+ MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
+
+ if (ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null) {
+ MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
+ MDC.put(ERROR_DESCRIPTION,
+ ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
+
+ }
+ errorLogger.error("failed to get the event.expired.time, so use its default value: " + expiredTime);
+ }
+
+ if (concurrentHashMapLimitProp > 0) {
+
+ concurrentHashMapLimit = concurrentHashMapLimitProp;
+
+ } else {
+ MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
+ if (ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null) {
+ MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
+ MDC.put(ERROR_DESCRIPTION,
+ ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
+
+ }
+ errorLogger.error("failed to get the concurrentHashMap.limit, so use its default value: "
+ + concurrentHashMapLimit);
+ }
+
+ if (stopCheckPointProp > 0) {
+
+ stopCheckPoint = stopCheckPointProp;
+
+ } else {
+ MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
+ if (ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null) {
+ MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
+ MDC.put(ERROR_DESCRIPTION,
+ ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
+
+ }
+ errorLogger.error("failed to get the stop.check.point, so use its default value: " + stopCheckPoint);
+ }
+
+ if (loggerTypeProp != null) {
+
+ if ("EELF".equalsIgnoreCase(loggerTypeProp)) {
+
+ loggerType = LoggerType.EELF;
+
+ } else if ("LOG4J".equalsIgnoreCase(loggerTypeProp)) {
+
+ loggerType = LoggerType.LOG4J;
+
+ } else if ("SYSTEMOUT".equalsIgnoreCase(loggerTypeProp)) {
+
+ loggerType = LoggerType.SYSTEMOUT;
+
+ }
+
+ }
+
+ if (debugLevelProp != null && !debugLevelProp.isEmpty()) {
+
+ debugLevel = Level.valueOf(debugLevelProp);
+
+ }
+ // Only check if it is to turn off or not
+ if (errorLevelProp != null && errorLevelProp.equalsIgnoreCase(Level.OFF.toString())) {
+
+ errorLevel = Level.valueOf(errorLevelProp);
+
+ }
+ // Only check if it is to turn off or not
+ if (metricsLevelProp != null && metricsLevelProp.equalsIgnoreCase(Level.OFF.toString())) {
+
+ metricsLevel = Level.valueOf(metricsLevelProp);
+
+ }
+ // Only check if it is to turn off or not
+ if (auditLevelProp != null && auditLevelProp.equalsIgnoreCase(Level.OFF.toString())) {
+
+ auditLevel = Level.valueOf(auditLevelProp);
+
+ }
+
+ } catch (Exception e) {
+ MDC.put(ERROR_CATEGORY, ERROR_CATEGORY_VALUE);
+
+ if (ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR) != null) {
+ MDC.put(ERROR_CODE, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorCode());
+ MDC.put(ERROR_DESCRIPTION, ErrorCodeMap.getErrorCodeInfo(MessageCodes.GENERAL_ERROR).getErrorDesc());
+
+ }
+ errorLogger.error("failed to get the policyLogger.properties, so use their default values", e);
+ }
+
+ return loggerType;
+
+ }
+
+
+ /**
+ * Returns true for overriding logback levels; returns false for not.
+ */
+ public static boolean isOverrideLogbackLevel() {
+
+ return isOverrideLogbackLevel;
+ }
+
+ /**
+ * Sets true for overriding logback levels; sets false for not.
+ */
+ public static void setOverrideLogbackLevel(boolean odl) {
+
+ isOverrideLogbackLevel = odl;
+
+ }
+
+ /**
+ * Sets server information to MDC.
+ */
+ public static void setServerInfo(String serverHost, String serverPort) {
+ MDC.put(SERVER_NAME, serverHost + ":" + serverPort);
+ }
}