From 5492c1dd9d7052781ae5cab28bf5bcc829ae9c9e Mon Sep 17 00:00:00 2001 From: mmis Date: Fri, 16 Mar 2018 14:42:22 +0000 Subject: Removed checkstyle warnings Removed checkstyle warnings in policy/common/logging Some warnings remain that required renaming of classes and public methods. These will be taken separately Issue-ID: POLICY-695 Change-Id: Id604c66708917de390c556b50f6266f929b09134 Signed-off-by: mmis --- .../policy/common/logging/eelf/Configuration.java | 38 +- .../common/logging/eelf/DroolsPDPMDCInfo.java | 4 +- .../policy/common/logging/eelf/ErrorCodeMap.java | 145 +- .../onap/policy/common/logging/eelf/EventData.java | 47 +- .../policy/common/logging/eelf/EventTrackInfo.java | 19 +- .../common/logging/eelf/EventTrackInfoHandler.java | 6 +- .../onap/policy/common/logging/eelf/MDCInfo.java | 5 +- .../policy/common/logging/eelf/MessageCodes.java | 228 +- .../policy/common/logging/eelf/PolicyLogger.java | 2833 ++++++++++---------- 9 files changed, 1703 insertions(+), 1622 deletions(-) (limited to 'common-logging/src/main/java/org/onap/policy/common/logging/eelf') 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 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 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 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 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 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 mdcMap = mdcInfo.getMDCInfo(); - Iterator 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) { - StringWriter sw = new StringWriter(); - PrintWriter pw = new PrintWriter(sw); - t.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 mdcMap = mdcInfo.getMDCInfo(); + Iterator keyIterator = mdcMap.keySet().iterator(); + String key; + + while (keyIterator.hasNext()) { + key = keyIterator.next(); + MDC.put(key, mdcMap.get(key)); } - 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); - } + } + + 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); + 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(":"); + } + 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 { + + 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; + + } + + + /** + * 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); + } } -- cgit 1.2.3-korg