From a8618399833e9e2c2cfdd214058234a1395f8361 Mon Sep 17 00:00:00 2001 From: Kishore Reddy Dwaram Date: Fri, 25 Sep 2020 16:45:02 -0400 Subject: changes done to support logs format Issue-ID: PORTAL-1008 Signed-off-by: Kishore Reddy Dwaram Change-Id: I20f110c0fd48d7258f86f08501bad81244d3db20 --- .../core/logging/logic/LoggerProperties.java | 107 +++++++++++++++++---- 1 file changed, 89 insertions(+), 18 deletions(-) (limited to 'ecomp-sdk/epsdk-logger/src/main/java/org/onap/portalsdk/core/logging/logic/LoggerProperties.java') diff --git a/ecomp-sdk/epsdk-logger/src/main/java/org/onap/portalsdk/core/logging/logic/LoggerProperties.java b/ecomp-sdk/epsdk-logger/src/main/java/org/onap/portalsdk/core/logging/logic/LoggerProperties.java index abd98b19..4287088b 100644 --- a/ecomp-sdk/epsdk-logger/src/main/java/org/onap/portalsdk/core/logging/logic/LoggerProperties.java +++ b/ecomp-sdk/epsdk-logger/src/main/java/org/onap/portalsdk/core/logging/logic/LoggerProperties.java @@ -37,13 +37,24 @@ */ package org.onap.portalsdk.core.logging.logic; +import java.io.File; import java.io.IOException; import java.io.InputStream; import java.util.Properties; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import org.springframework.util.ResourceUtils; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + public class LoggerProperties { - public static final String MDC_APPNAME = "AppName"; public static final String MDC_REST_PATH = "RestPath"; public static final String MDC_REST_METHOD = "RestMethod"; @@ -62,20 +73,34 @@ public class LoggerProperties { public static final String CLIENT_IP_ADDRESS = "ClientIPAddress"; public static final String STATUS_CODE = "StatusCode"; public static final String RESPONSE_CODE = "ResponseCode"; - + public static final String HTTP = "HTTP"; public static final String HTTPS = "HTTPS"; public static final String UNKNOWN = "Unknown"; public static final String PROTOCOL = "PROTOCOL"; public static final String USERAGENT_NAME = "user-agent"; public static final String USER_ATTRIBUTE_NAME = "user_attribute_name"; - - private LoggerProperties(){} + public static final String ALERT_SEVERITY = "AlertSeverity"; + public static final String ERROR_CATAGORY = "ErrorCatagory"; + public static final String ERROR_CODE = "ErrorCode"; + public static final String ERROR_DESCRIPTION = "ErrorDescription"; + public static final String CUSTOM_FIELD1 = "CustomField1"; + public static final String CUSTOM_FIELD2 = "CustomField2"; + public static final String APP_NAME = "application_name"; + + private LoggerProperties() { + } + + private static Properties properties; + + private static DocumentBuilderFactory dbFactory; + + private static DocumentBuilder dBuilder; + + private static Document doc; - private static Properties properties; - - private static String propertyFileName = "logger.properties"; + private static String propertyFileName = "classpath:logback.xml"; private static final Object lockObject = new Object(); @@ -83,8 +108,7 @@ public class LoggerProperties { * Gets the property value for the specified key. If a value is found, leading * and trailing space is trimmed. * - * @param property - * Property key + * @param property Property key * @return Value for the named property; null if the property file was not * loaded or the key was not found. */ @@ -113,21 +137,68 @@ public class LoggerProperties { * whether the properties file can be loaded successfully. * * @return True if properties were successfully loaded, else false. - * @throws IOException - * On failure + * @throws IOException On failure + * @throws SAXException + * @throws ParserConfigurationException */ private static boolean initialize() throws IOException { - if (properties != null) + File xmlFile = null; +// if (properties != null) +// return true; +// InputStream in = LoggerProperties.class.getClassLoader().getResourceAsStream(propertyFileName); + + if (dbFactory != null) return true; - InputStream in = LoggerProperties.class.getClassLoader().getResourceAsStream(propertyFileName); - if (in == null) - return false; - properties = new Properties(); +// if (in == null) +// return false; + if (dbFactory == null) +// properties = new Properties(); + dbFactory = DocumentBuilderFactory.newInstance(); try { - properties.load(in); +// properties.load(in); + xmlFile = ResourceUtils.getFile(propertyFileName); + dBuilder = dbFactory.newDocumentBuilder(); + doc = dBuilder.parse(xmlFile); + doc.getDocumentElement().normalize(); + } catch (IOException | SAXException | ParserConfigurationException e) { + return false; } finally { - in.close(); +// in.close(); } return true; } + + public static String getPropertyValue(String propertyName) { + + if (dbFactory == null) { + synchronized (lockObject) { + try { + if (!initialize()) { + return null; + } + } catch (IOException e) { + return null; + } + } + } + String value = getValue(doc, propertyName); + if (value != null) + value = value.trim(); + return value; + + } + + private static String getValue(Document someNode, String property) { + NodeList nodeList = someNode.getElementsByTagName("property"); + String Value = null; + for (int i = 0; i < nodeList.getLength(); i++) { + Node node = nodeList.item(i); + if (node instanceof Element) { + if (((Element) node).getAttribute("name").toString().equals(property)) { + Value = ((Element) node).getAttribute("value").toString(); + } + } + } + return Value; + } } \ No newline at end of file -- cgit 1.2.3-korg