Add graphadmin microservice to oom

Add the graphadmin charts to oom
Also added the aai_schema changes to
make the application model driven
Update the resources traversal charts
to be more user configurable

Issue-ID: AAI-1545
Issue-ID: AAI-1474
Change-Id: Ie615cf3675b36a4830242a8510046c22fd95135b
Signed-off-by: Kajur, Harish (vk250x) <vk250x@att.com>
diff --git a/kubernetes/aai/charts/aai-traversal/resources/config/logback.xml b/kubernetes/aai/charts/aai-traversal/resources/config/logback.xml
index 84ec4f1..96fe005 100644
--- a/kubernetes/aai/charts/aai-traversal/resources/config/logback.xml
+++ b/kubernetes/aai/charts/aai-traversal/resources/config/logback.xml
@@ -1,366 +1,369 @@
-<!--

-    ============LICENSE_START=======================================================

-    org.onap.aai

-    ================================================================================

-    Copyright © 2017 AT&T Intellectual Property. All rights reserved.

-    Modifications Copyright © 2018 Amdocs, Bell Canada

-    ================================================================================

-    Licensed under the Apache License, Version 2.0 (the "License");

-    you may not use this file except in compliance with the License.

-    You may obtain a copy of the License at

-       http://www.apache.org/licenses/LICENSE-2.0

-    Unless required by applicable law or agreed to in writing, software

-    distributed under the License is distributed on an "AS IS" BASIS,

-    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

-    See the License for the specific language governing permissions and

-    limitations under the License.

-    ============LICENSE_END=========================================================

-    ECOMP is a trademark and service mark of AT&T Intellectual Property.

--->

-<configuration scan="true" scanPeriod="60 seconds" debug="false">

-    <statusListener class="ch.qos.logback.core.status.NopStatusListener" />

-    <property resource="application.properties" />

-    <property name="namespace" value="aai-traversal"/>

-    <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />

-    <jmxConfigurator />

-    <property name="logDirectory" value="${AJSC_HOME}/logs" />

-    <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>

-    <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>

-    <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>

-    <!--  <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> -->

-    <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>

-    <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/>

-    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />

-    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />

-    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />

-    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">

-        <encoder>

-            <pattern>

-                %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}

-            </pattern>

-        </encoder>

-    </appender>

-    <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">

-        <file>${logDirectory}/rest/sane.log</file>

-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-            <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>

-        </rollingPolicy>

-        <encoder>

-            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n

-            </pattern>

-        </encoder>

-    </appender>

-    <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">

-        <queueSize>1000</queueSize>

-        <includeCallerData>true</includeCallerData>

-        <appender-ref ref="SANE" />

-    </appender>

-    <appender name="METRIC"

-        class="ch.qos.logback.core.rolling.RollingFileAppender">

-        <filter class="ch.qos.logback.classic.filter.LevelFilter">

-            <level>INFO</level>

-            <onMatch>ACCEPT</onMatch>

-            <onMismatch>DENY</onMismatch>

-        </filter>

-        <file>${logDirectory}/rest/metrics.log</file>

-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-            <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}

-            </fileNamePattern>

-        </rollingPolicy>

-        <encoder class="org.onap.aai.logging.EcompEncoder">

-            <pattern>${eelfMetricLogPattern}</pattern>

-        </encoder>

-    </appender>

-    <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">

-        <queueSize>1000</queueSize>

-        <includeCallerData>true</includeCallerData>

-        <appender-ref ref="METRIC" />

-    </appender>

-    <appender name="DEBUG"

-        class="ch.qos.logback.core.rolling.RollingFileAppender">

-        <filter class="ch.qos.logback.classic.filter.LevelFilter">

-            <level>DEBUG</level>

-            <onMatch>ACCEPT</onMatch>

-            <onMismatch>DENY</onMismatch>

-        </filter>

-        <file>${logDirectory}/rest/debug.log</file>

-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-            <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}

-            </fileNamePattern>

-        </rollingPolicy>

-        <encoder class="org.onap.aai.logging.EcompEncoder">

-            <pattern>${eelfLogPattern}</pattern>

-        </encoder>

-    </appender>

-    <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">

-        <queueSize>1000</queueSize>

-        <includeCallerData>true</includeCallerData>

-        <appender-ref ref="DEBUG" />

-    </appender>

-    <appender name="ERROR"

-        class="ch.qos.logback.core.rolling.RollingFileAppender">

-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">

-            <level>WARN</level>

-        </filter>

-        <file>${logDirectory}/rest/error.log</file>

-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-            <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}

-            </fileNamePattern>

-        </rollingPolicy>

-        <encoder class="org.onap.aai.logging.EcompEncoder">

-            <pattern>${eelfErrorLogPattern}</pattern>

-        </encoder>

-    </appender>

-    <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">

-        <queueSize>1000</queueSize>

-        <includeCallerData>true</includeCallerData>

-        <appender-ref ref="ERROR" />

-    </appender>

-    <appender name="AUDIT"

-        class="ch.qos.logback.core.rolling.RollingFileAppender">

-        <file>${logDirectory}/rest/audit.log</file>

-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-            <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}

-            </fileNamePattern>

-        </rollingPolicy>

-        <encoder class="org.onap.aai.logging.EcompEncoder">

-            <pattern>${eelfAuditLogPattern}</pattern>

-        </encoder>

-    </appender>

-    <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">

-        <queueSize>1000</queueSize>

-        <includeCallerData>true</includeCallerData>

-        <appender-ref ref="AUDIT" />

-    </appender>

-    <appender name="translog"

-        class="ch.qos.logback.core.rolling.RollingFileAppender">

-        <filter class="ch.qos.logback.classic.filter.LevelFilter">

-            <level>DEBUG</level>

-            <onMatch>ACCEPT</onMatch>

-            <onMismatch>DENY</onMismatch>

-        </filter>

-        <file>${logDirectory}/rest/translog.log</file>

-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-            <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}

-            </fileNamePattern>

-        </rollingPolicy>

-        <encoder class="org.onap.aai.logging.EcompEncoder">

-            <pattern>${eelfTransLogPattern}</pattern>

-        </encoder>

-    </appender>

-    <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">

-        <queueSize>1000</queueSize>

-        <includeCallerData>true</includeCallerData>

-        <appender-ref ref="translog" />

-    </appender>

-    <appender name="dmaapAAIEventConsumer"

-        class="ch.qos.logback.core.rolling.RollingFileAppender">

-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">

-            <level>WARN</level>

-        </filter>

-        <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File>

-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}

-            </fileNamePattern>

-        </rollingPolicy>

-        <encoder class="org.onap.aai.logging.EcompEncoder">

-            <pattern>${eelfLogPattern}</pattern>

-        </encoder>

-    </appender>

-    <appender name="dmaapAAIEventConsumerDebug"

-        class="ch.qos.logback.core.rolling.RollingFileAppender">

-        <filter class="ch.qos.logback.classic.filter.LevelFilter">

-            <level>DEBUG</level>

-            <onMatch>ACCEPT</onMatch>

-            <onMismatch>DENY</onMismatch>

-        </filter>

-        <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File>

-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}

-            </fileNamePattern>

-        </rollingPolicy>

-        <encoder class="org.onap.aai.logging.EcompEncoder">

-            <pattern>${eelfLogPattern}</pattern>

-        </encoder>

-    </appender>

-    <appender name="dmaapAAIEventConsumerMetric"

-        class="ch.qos.logback.core.rolling.RollingFileAppender">

-        <filter class="ch.qos.logback.classic.filter.LevelFilter">

-            <level>INFO</level>

-            <onMatch>ACCEPT</onMatch>

-            <onMismatch>DENY</onMismatch>

-        </filter>

-        <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File>

-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}

-            </fileNamePattern>

-        </rollingPolicy>

-        <encoder class="org.onap.aai.logging.EcompEncoder">

-            <pattern>${eelfMetricLogPattern}</pattern>

-        </encoder>

-    </appender>

-    <appender name="external"

-        class="ch.qos.logback.core.rolling.RollingFileAppender">

-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">

-            <level>WARN</level>

-        </filter>

-        <file>${logDirectory}/external/external.log</file>

-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-            <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}

-            </fileNamePattern>

-        </rollingPolicy>

-        <encoder class="org.onap.aai.logging.EcompEncoder">

-            <pattern>${eelfLogPattern}</pattern>

-        </encoder>

-    </appender>

-    <logger name="org.onap.aai" level="DEBUG" additivity="false">

-        <appender-ref ref="asyncDEBUG" />

-        <appender-ref ref="asyncERROR" />

-        <appender-ref ref="asyncMETRIC" />

-        <appender-ref ref="asyncSANE" />

-    </logger>

-    <!-- Spring related loggers -->

-    <logger name="org.springframework" level="WARN" />

-    <logger name="org.springframework.beans" level="WARN" />

-    <logger name="org.springframework.web" level="WARN" />

-    <logger name="com.blog.spring.jms" level="WARN" />

-    <logger name="com.jayway.jsonpath" level="WARN" />

-    <!-- AJSC Services (bootstrap services) -->

-    <logger name="ajsc" level="WARN" />

-    <logger name="ajsc.RouteMgmtService" level="WARN" />

-    <logger name="ajsc.ComputeService" level="WARN" />

-    <logger name="ajsc.VandelayService" level="WARN" />

-    <logger name="ajsc.FilePersistenceService" level="WARN" />

-    <logger name="ajsc.UserDefinedJarService" level="WARN" />

-    <logger name="ajsc.UserDefinedBeansDefService" level="WARN" />

-    <logger name="ajsc.LoggingConfigurationService" level="WARN" />

-    <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet

-        logging) -->

-    <logger name="org.codehaus.groovy" level="WARN" />

-    <logger name="com.att.scamper" level="WARN" />

-    <logger name="ajsc.utils" level="WARN" />

-    <logger name="ajsc.utils.DME2Helper" level="WARN" />

-    <logger name="ajsc.filters" level="WARN" />

-    <logger name="ajsc.beans.interceptors" level="WARN" />

-    <logger name="ajsc.restlet" level="WARN" />

-    <logger name="ajsc.servlet" level="WARN" />

-    <logger name="com.att.ajsc" level="WARN" />

-    <logger name="com.att.ajsc.csi.logging" level="WARN" />

-    <logger name="com.att.ajsc.filemonitor" level="WARN" />

-    <logger name="com.netflix.loadbalancer" level="WARN" />

-    <logger name="org.apache.zookeeper" level="OFF" />

-    <!-- Other Loggers that may help troubleshoot -->

-    <logger name="net.sf" level="WARN" />

-    <logger name="org.apache.commons.httpclient" level="WARN" />

-    <logger name="org.apache.commons" level="WARN" />

-    <logger name="org.apache.coyote" level="WARN" />

-    <logger name="org.apache.jasper" level="WARN" />

-    <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging.

-        May aid in troubleshooting) -->

-    <logger name="org.apache.camel" level="WARN" />

-    <logger name="org.apache.cxf" level="WARN" />

-    <logger name="org.apache.camel.processor.interceptor" level="WARN" />

-    <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" />

-    <logger name="org.apache.cxf.service" level="WARN" />

-    <logger name="org.restlet" level="WARN" />

-    <logger name="org.apache.camel.component.restlet" level="WARN" />

-    <logger name="org.hibernate.validator" level="WARN" />

-    <logger name="org.hibernate" level="WARN" />

-    <logger name="org.hibernate.ejb" level="OFF" />

-    <!-- logback internals logging -->

-    <logger name="ch.qos.logback.classic" level="WARN" />

-    <logger name="ch.qos.logback.core" level="WARN" />

-    <logger name="org.eclipse.jetty" level="WARN" />

-    <!-- logback jms appenders & loggers definition starts here -->

-    <appender name="auditLogs"

-        class="ch.qos.logback.core.rolling.RollingFileAppender">

-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter" />

-        <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log

-        </file>

-        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">

-            <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip

-            </fileNamePattern>

-            <minIndex>1</minIndex>

-            <maxIndex>9</maxIndex>

-        </rollingPolicy>

-        <triggeringPolicy

-            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">

-            <maxFileSize>5MB</maxFileSize>

-        </triggeringPolicy>

-        <encoder>

-            <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>

-        </encoder>

-    </appender>

-    <appender name="perfLogs"

-        class="ch.qos.logback.core.rolling.RollingFileAppender">

-        <filter class="ch.qos.logback.classic.filter.ThresholdFilter" />

-        <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log

-        </file>

-        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">

-            <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip

-            </fileNamePattern>

-            <minIndex>1</minIndex>

-            <maxIndex>9</maxIndex>

-        </rollingPolicy>

-        <triggeringPolicy

-            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">

-            <maxFileSize>5MB</maxFileSize>

-        </triggeringPolicy>

-        <encoder>

-            <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>

-        </encoder>

-    </appender>

-    <appender name="miscLogs" class="ch.qos.logback.core.rolling.RollingFileAppender">

-                <file>${logDirectory}/misc/misc.log</file>

-                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">

-                        <fileNamePattern>${logDirectory}/misc/misc.log.%d{yyyy-MM-dd}</fileNamePattern>

-                </rollingPolicy>

-                <encoder>

-                        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n                                                              

-                        </pattern>

-        </encoder>

-        </appender>

-    <logger name="AuditRecord" level="INFO" additivity="false">

-        <appender-ref ref="auditLogs" />

-    </logger>

-    <logger name="AuditRecord_DirectCall" level="INFO" additivity="false">

-        <appender-ref ref="auditLogs" />

-    </logger>

-    <logger name="PerfTrackerRecord" level="INFO" additivity="false">

-        <appender-ref ref="perfLogs" />

-    </logger>

-    <logger name="MiscRecord" level="INFO" additivity="false">

-                <appender-ref ref="miscLogs" />

-        </logger>

-    <!-- logback jms appenders & loggers definition ends here -->

-    <logger name="org.onap.aai.interceptors.post" level="DEBUG"

-            additivity="false">

-        <appender-ref ref="asynctranslog" />

-    </logger>

-    <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG">

-        <appender-ref ref="asyncAUDIT"/>

-    </logger>

-    <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG">

-        <appender-ref ref="asyncAUDIT"/>

-    </logger>

-    <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false">

-        <appender-ref ref="dmaapAAIEventConsumer" />

-        <appender-ref ref="dmaapAAIEventConsumerDebug" />

-        <appender-ref ref="dmaapAAIEventConsumerMetric" />

-    </logger>

-    <logger name="org.apache" level="OFF" />

-    <logger name="org.zookeeper" level="OFF" />

-    <logger name="com.thinkaurelius" level="WARN" />

-    <logger name="com.att.aft.dme2" level="WARN" />

-    <!-- ============================================================================ -->

-    <!-- General EELF logger -->

-    <!-- ============================================================================ -->

-    <logger name="com.att.eelf" level="WARN" additivity="false">

-        <appender-ref ref="asyncDEBUG" />

-        <appender-ref ref="asyncERROR" />

-        <appender-ref ref="asyncMETRIC" />

-    </logger>

-    <root level="DEBUG">

-        <appender-ref ref="external" />

-    </root>

-</configuration>

+<!--
+    ============LICENSE_START=======================================================
+    org.onap.aai
+    ================================================================================
+    Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+    Modifications Copyright © 2018 Amdocs, Bell Canada
+    ================================================================================
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+       http://www.apache.org/licenses/LICENSE-2.0
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+    ============LICENSE_END=========================================================
+    ECOMP is a trademark and service mark of AT&T Intellectual Property.
+-->
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
+    <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
+    <property resource="application.properties" />
+    <property name="namespace" value="aai-traversal"/>
+    <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
+    <jmxConfigurator />
+    <property name="logDirectory" value="${AJSC_HOME}/logs" />
+    <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+    <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+    <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+    <!--  <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> -->
+    <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
+    <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/>
+    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
+    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>
+                %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
+            </pattern>
+        </encoder>
+    </appender>
+    <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${logDirectory}/rest/sane.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
+            </pattern>
+        </encoder>
+    </appender>
+    <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
+        <queueSize>1000</queueSize>
+        <includeCallerData>true</includeCallerData>
+        <appender-ref ref="SANE" />
+    </appender>
+    <appender name="METRIC"
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <file>${logDirectory}/rest/metrics.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}
+            </fileNamePattern>
+        </rollingPolicy>
+        <encoder class="org.onap.aai.logging.EcompEncoder">
+            <pattern>${eelfMetricLogPattern}</pattern>
+        </encoder>
+    </appender>
+    <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">
+        <queueSize>1000</queueSize>
+        <includeCallerData>true</includeCallerData>
+        <appender-ref ref="METRIC" />
+    </appender>
+    <appender name="DEBUG"
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <file>${logDirectory}/rest/debug.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}
+            </fileNamePattern>
+        </rollingPolicy>
+        <encoder class="org.onap.aai.logging.EcompEncoder">
+            <pattern>${eelfLogPattern}</pattern>
+        </encoder>
+    </appender>
+    <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
+        <queueSize>1000</queueSize>
+        <includeCallerData>true</includeCallerData>
+        <appender-ref ref="DEBUG" />
+    </appender>
+    <appender name="ERROR"
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+        </filter>
+        <file>${logDirectory}/rest/error.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}
+            </fileNamePattern>
+        </rollingPolicy>
+        <encoder class="org.onap.aai.logging.EcompEncoder">
+            <pattern>${eelfErrorLogPattern}</pattern>
+        </encoder>
+    </appender>
+    <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
+        <queueSize>1000</queueSize>
+        <includeCallerData>true</includeCallerData>
+        <appender-ref ref="ERROR" />
+    </appender>
+    <appender name="AUDIT"
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${logDirectory}/rest/audit.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}
+            </fileNamePattern>
+        </rollingPolicy>
+        <encoder class="org.onap.aai.logging.EcompEncoder">
+            <pattern>${eelfAuditLogPattern}</pattern>
+        </encoder>
+    </appender>
+    <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
+        <queueSize>1000</queueSize>
+        <includeCallerData>true</includeCallerData>
+        <appender-ref ref="AUDIT" />
+    </appender>
+    <appender name="translog"
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <file>${logDirectory}/rest/translog.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}
+            </fileNamePattern>
+        </rollingPolicy>
+        <encoder class="org.onap.aai.logging.EcompEncoder">
+            <pattern>${eelfTransLogPattern}</pattern>
+        </encoder>
+    </appender>
+    <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
+        <queueSize>1000</queueSize>
+        <includeCallerData>true</includeCallerData>
+        <appender-ref ref="translog" />
+    </appender>
+    <appender name="dmaapAAIEventConsumer"
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+        </filter>
+        <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}
+            </fileNamePattern>
+        </rollingPolicy>
+        <encoder class="org.onap.aai.logging.EcompEncoder">
+            <pattern>${eelfLogPattern}</pattern>
+        </encoder>
+    </appender>
+    <appender name="dmaapAAIEventConsumerDebug"
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}
+            </fileNamePattern>
+        </rollingPolicy>
+        <encoder class="org.onap.aai.logging.EcompEncoder">
+            <pattern>${eelfLogPattern}</pattern>
+        </encoder>
+    </appender>
+    <appender name="dmaapAAIEventConsumerMetric"
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}
+            </fileNamePattern>
+        </rollingPolicy>
+        <encoder class="org.onap.aai.logging.EcompEncoder">
+            <pattern>${eelfMetricLogPattern}</pattern>
+        </encoder>
+    </appender>
+    <appender name="external"
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+        </filter>
+        <file>${logDirectory}/external/external.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}
+            </fileNamePattern>
+        </rollingPolicy>
+        <encoder class="org.onap.aai.logging.EcompEncoder">
+            <pattern>${eelfLogPattern}</pattern>
+        </encoder>
+    </appender>
+    <logger name="org.onap.aai" level="DEBUG" additivity="false">
+        <appender-ref ref="asyncDEBUG" />
+        <appender-ref ref="asyncERROR" />
+        <appender-ref ref="asyncMETRIC" />
+        <appender-ref ref="asyncSANE" />
+    </logger>
+    <!-- Spring related loggers -->
+    <logger name="org.springframework" level="WARN" />
+    <logger name="org.springframework.beans" level="WARN" />
+    <logger name="org.springframework.web" level="WARN" />
+    <logger name="com.blog.spring.jms" level="WARN" />
+    <logger name="com.jayway.jsonpath" level="WARN" />
+    <!-- AJSC Services (bootstrap services) -->
+    <logger name="ajsc" level="WARN" />
+    <logger name="ajsc.RouteMgmtService" level="WARN" />
+    <logger name="ajsc.ComputeService" level="WARN" />
+    <logger name="ajsc.VandelayService" level="WARN" />
+    <logger name="ajsc.FilePersistenceService" level="WARN" />
+    <logger name="ajsc.UserDefinedJarService" level="WARN" />
+    <logger name="ajsc.UserDefinedBeansDefService" level="WARN" />
+    <logger name="ajsc.LoggingConfigurationService" level="WARN" />
+    <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet
+        logging) -->
+    <logger name="org.codehaus.groovy" level="WARN" />
+    <logger name="com.att.scamper" level="WARN" />
+    <logger name="ajsc.utils" level="WARN" />
+    <logger name="ajsc.utils.DME2Helper" level="WARN" />
+    <logger name="ajsc.filters" level="WARN" />
+    <logger name="ajsc.beans.interceptors" level="WARN" />
+    <logger name="ajsc.restlet" level="WARN" />
+    <logger name="ajsc.servlet" level="WARN" />
+    <logger name="com.att.ajsc" level="WARN" />
+    <logger name="com.att.ajsc.csi.logging" level="WARN" />
+    <logger name="com.att.ajsc.filemonitor" level="WARN" />
+    <logger name="com.netflix.loadbalancer" level="WARN" />
+    <logger name="org.apache.zookeeper" level="OFF" />
+    <!-- Other Loggers that may help troubleshoot -->
+    <logger name="net.sf" level="WARN" />
+    <logger name="org.apache.commons.httpclient" level="WARN" />
+    <logger name="org.apache.commons" level="WARN" />
+    <logger name="org.apache.coyote" level="WARN" />
+    <logger name="org.apache.jasper" level="WARN" />
+    <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging.
+        May aid in troubleshooting) -->
+    <logger name="org.apache.camel" level="WARN" />
+    <logger name="org.apache.cxf" level="WARN" />
+    <logger name="org.apache.camel.processor.interceptor" level="WARN" />
+    <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" />
+    <logger name="org.apache.cxf.service" level="WARN" />
+    <logger name="org.restlet" level="WARN" />
+    <logger name="org.apache.camel.component.restlet" level="WARN" />
+    <logger name="org.hibernate.validator" level="WARN" />
+    <logger name="org.hibernate" level="WARN" />
+    <logger name="org.hibernate.ejb" level="OFF" />
+    <!-- logback internals logging -->
+    <logger name="ch.qos.logback.classic" level="WARN" />
+    <logger name="ch.qos.logback.core" level="WARN" />
+    <logger name="org.eclipse.jetty" level="WARN" />
+    <!-- logback jms appenders & loggers definition starts here -->
+    <appender name="auditLogs"
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter" />
+        <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log
+        </file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
+            </fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>9</maxIndex>
+        </rollingPolicy>
+        <triggeringPolicy
+            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>5MB</maxFileSize>
+        </triggeringPolicy>
+        <encoder>
+            <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+        </encoder>
+    </appender>
+    <appender name="perfLogs"
+        class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter" />
+        <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log
+        </file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+            <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip
+            </fileNamePattern>
+            <minIndex>1</minIndex>
+            <maxIndex>9</maxIndex>
+        </rollingPolicy>
+        <triggeringPolicy
+            class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <maxFileSize>5MB</maxFileSize>
+        </triggeringPolicy>
+        <encoder>
+            <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+        </encoder>
+    </appender>
+    <appender name="miscLogs" class="ch.qos.logback.core.rolling.RollingFileAppender">
+                <file>${logDirectory}/misc/misc.log</file>
+                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                        <fileNamePattern>${logDirectory}/misc/misc.log.%d{yyyy-MM-dd}</fileNamePattern>
+                </rollingPolicy>
+                <encoder>
+                        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n                                                              
+                        </pattern>
+        </encoder>
+        </appender>
+    <logger name="AuditRecord" level="INFO" additivity="false">
+        <appender-ref ref="auditLogs" />
+    </logger>
+    <logger name="AuditRecord_DirectCall" level="INFO" additivity="false">
+        <appender-ref ref="auditLogs" />
+    </logger>
+    <logger name="PerfTrackerRecord" level="INFO" additivity="false">
+        <appender-ref ref="perfLogs" />
+    </logger>
+    <logger name="MiscRecord" level="INFO" additivity="false">
+                <appender-ref ref="miscLogs" />
+        </logger>
+    <!-- logback jms appenders & loggers definition ends here -->
+    <logger name="org.onap.aai.interceptors.post" level="DEBUG"
+            additivity="false">
+        <appender-ref ref="asynctranslog" />
+    </logger>
+    <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG">
+        <appender-ref ref="asyncAUDIT"/>
+    </logger>
+    <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG">
+        <appender-ref ref="asyncAUDIT"/>
+    </logger>
+    <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false">
+        <appender-ref ref="dmaapAAIEventConsumer" />
+        <appender-ref ref="dmaapAAIEventConsumerDebug" />
+        <appender-ref ref="dmaapAAIEventConsumerMetric" />
+    </logger>
+    <logger name="org.apache" level="OFF" />
+    <logger name="org.zookeeper" level="OFF" />
+    <logger name="com.thinkaurelius" level="WARN" />
+    <logger name="com.att.aft.dme2" level="WARN" />
+    <!-- ============================================================================ -->
+    <!-- General EELF logger -->
+    <!-- ============================================================================ -->
+    <logger name="com.att.eelf" level="WARN" additivity="false">
+        <appender-ref ref="asyncDEBUG" />
+        <appender-ref ref="asyncERROR" />
+        <appender-ref ref="asyncMETRIC" />
+    </logger>
+    <root level="DEBUG">
+        <appender-ref ref="external" />
+        {{if .Values.global.config.logback.console.enabled}}
+        <appender-ref ref="STDOUT" />
+        {{ end }}
+    </root>
+</configuration>