Seed of deployment of log components

Deployment of: Logstash + ElasticSearch + Kubana with all the configuration files
Issue-ID:OOM-110

Change-Id: I1788485ccb283f0ec4dc8910479072a6cf034e5f
Signed-off-by: Itay Hassid <itay.hassid@amdocs.com>
diff --git a/kubernetes/config/docker/init/config-init.sh b/kubernetes/config/docker/init/config-init.sh
index cc3a0f6..b97eee0 100755
--- a/kubernetes/config/docker/init/config-init.sh
+++ b/kubernetes/config/docker/init/config-init.sh
@@ -48,6 +48,7 @@
 mkdir -p /config-init/$NAMESPACE/aai/search-data-service/logs/
 mkdir -p /config-init/$NAMESPACE/aai/data-router/logs/
 mkdir -p /config-init/$NAMESPACE/mso/mariadb/data
+mkdir -p /config-init/$NAMESPACE/log/elasticsearch/data
 
 echo "Setting permissions to container writeable directories"
 chmod -R 777 /config-init/$NAMESPACE/sdc/logs/
@@ -64,6 +65,7 @@
 chmod -R 777 /config-init/$NAMESPACE/aai/search-data-service/logs/
 chmod -R 777 /config-init/$NAMESPACE/aai/data-router/logs/
 chmod -R 777 /config-init/$NAMESPACE/policy/mariadb/
+chmod -R 777 /config-init/$NAMESPACE/log/elasticsearch
 
 echo "Substituting configuration parameters"
 
@@ -107,4 +109,4 @@
 
 find /config-init/$NAMESPACE/ -type f -exec sed -i -e "s/OPENSTACK_TENANT_NAME_HERE/$OPENSTACK_TENANT_NAME/g" {} \;
 
-echo "Done!"
\ No newline at end of file
+echo "Done!"
diff --git a/kubernetes/config/docker/init/src/config/log/aai/ajsc-aai/logback.xml b/kubernetes/config/docker/init/src/config/log/aai/ajsc-aai/logback.xml
new file mode 100644
index 0000000..b16b6eb
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/aai/ajsc-aai/logback.xml
@@ -0,0 +1,295 @@
+<configuration debug="false" scan="true" scanPeriod="60 seconds">

+    <contextName>${module.ajsc.namespace.name}</contextName>

+    <jmxConfigurator />

+    <property name="logDir" value="/var/log/onap" />

+    <property name="componentName" value="aai"></property>

+    <property name="restLogDirectory" value="${logDir}/${componentName}/rest" />

+    <property name="dmaapLogDirectory" value="${logDir}/${componentName}/dmaapAAIWorkloadConsumer" />

+    <property name="perfLogsDirectory" value="${logDir}/${componentName}/perf-audit" />

+    <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+    <!--  log file names -->

+    <property name="errorLogName" value="error" />

+    <property name="metricsLogName" value="metrics" />

+    <property name="auditLogName" value="audit" />

+    <property name="debugLogName" value="debug" />

+    <property name="queueSize" value="256" />

+    <property name="maxFileSize" value="50MB" />

+    <property name="maxHistory" value="30" />

+    <property name="totalSizeCap" value="10GB" />

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

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

+            <level>ERROR</level>

+            <onMatch>ACCEPT</onMatch>

+            <onMismatch>DENY</onMismatch>

+        </filter>

+        <encoder>

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

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="METRIC">

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

+            <level>INFO</level>

+            <onMatch>ACCEPT</onMatch>

+            <onMismatch>DENY</onMismatch>

+        </filter>

+        <file>${restLogDirectory}/${metricsLogName}.log</file>

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

+            <fileNamePattern>${restLogDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

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

+        <queueSize>${queueSize}</queueSize>

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

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG">

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

+            <level>DEBUG</level>

+            <onMatch>ACCEPT</onMatch>

+            <onMismatch>DENY</onMismatch>

+        </filter>

+        <file>${restLogDirectory}/${debugLogName}.log</file>

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

+            <fileNamePattern>${restLogDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

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

+        <queueSize>${queueSize}</queueSize>

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

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR">

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

+            <level>WARN</level>

+        </filter>

+        <file>${restLogDirectory}/${errorLogName}.log</file>

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

+            <fileNamePattern>${restLogDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

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

+        <queueSize>${queueSize}</queueSize>

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

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT">

+        <file>${restLogDirectory}/${auditLogName}.log</file>

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

+            <fileNamePattern>${restLogDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

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

+        <queueSize>${queueSize}</queueSize>

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

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="dmaapAAIWorkloadConsumer">

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

+            <level>WARN</level>

+        </filter>

+        <File>${dmaapLogDirectory}/${errorLogName}.log</File>

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

+            <fileNamePattern>${dmaapLogDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="dmaapAAIWorkloadConsumerdebug">

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

+            <level>DEBUG</level>

+            <onMatch>ACCEPT</onMatch>

+            <onMismatch>DENY</onMismatch>

+        </filter>

+        <File>${dmaapLogDirectory}/${debugLogName}.log</File>

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

+            <fileNamePattern>${dmaapLogDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="dmaapAAIWorkloadConsumermetric">

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

+            <level>INFO</level>

+            <onMatch>ACCEPT</onMatch>

+            <onMismatch>DENY</onMismatch>

+        </filter>

+        <File>${dmaapLogDirectory}/${metricsLogName}.log</File>

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

+            <fileNamePattern>${dmaapLogDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <!-- Spring related loggers -->

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

+    <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging.        May aid in troubleshooting) -->

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

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

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

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

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

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

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

+    <!-- logback internals logging -->

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

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

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

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="auditLogs">

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

+        <file>${perfLogsDirectory}/Audit-${lrmRVer}-${lrmRO}-${Pid}.log</file>

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

+            <fileNamePattern>${perfLogsDirectory}/Audit-${lrmRVer}-${lrmRO}-${Pid}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="perfLogs">

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

+        <file>${perfLogsDirectory}/Perform-${lrmRVer}-${lrmRO}-${Pid}.log</file>

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

+            <fileNamePattern>${perfLogsDirectory}/Perform-${lrmRVer}-${lrmRO}-${Pid}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC-audit">

+        <queueSize>1000</queueSize>

+        <discardingThreshold>0</discardingThreshold>

+        <appender-ref ref="Audit-Record-Queue" />

+    </appender>

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

+        <appender-ref ref="ASYNC-audit" />

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

+    </logger>

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

+        <appender-ref ref="ASYNC-audit" />

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

+    </logger>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC-perf">

+        <queueSize>1000</queueSize>

+        <discardingThreshold>0</discardingThreshold>

+        <appender-ref ref="Performance-Tracker-Queue" />

+    </appender>

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

+        <appender-ref ref="ASYNC-perf" />

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

+    </logger>

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

+    <logger additivity="false" level="DEBUG" name="org.openecomp.aai.dmaap">

+        <appender-ref ref="dmaapAAIWorkloadConsumer" />

+        <appender-ref ref="dmaapAAIWorkloadConsumerdebug" />

+        <appender-ref ref="dmaapAAIWorkloadConsumermetric" />

+    </logger>

+    <logger additivity="false" level="INFO" name="org.openecomp.aai">

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

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

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

+    </logger>

+    <logger additivity="false" level="INFO" name="org.openecomp.aai.AUDITLOGGER">

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

+    </logger>

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

+    <logger level="WARN" name="org.zookeeper" />

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

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

+    <!-- General EELF logger -->

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

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

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

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

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

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

+    </logger>

+    <root level="WARN">

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

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

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

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

+    </root>

+</configuration>

diff --git a/kubernetes/config/docker/init/src/config/log/aai/model-loader/logback.xml b/kubernetes/config/docker/init/src/config/log/aai/model-loader/logback.xml
new file mode 100644
index 0000000..cdef6d3
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/aai/model-loader/logback.xml
@@ -0,0 +1,163 @@
+<configuration debug="false" scan="true" scanPeriod="3 seconds">

+    <!--<jmxConfigurator /> -->

+    <!-- directory path for all other type logs -->

+    <property name="logDir" value="/var/log/onap" />

+    <!-- specify the component name <ECOMP-component-name>::= "MSO" | "DCAE" 

+                | "ASDC " | "AAI" |"Policy" | "SDNC" | "AC" -->

+    <property name="componentName" value="aai"></property>

+    <property name="subComponentName" value="aai-ml"></property>

+    <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+    <!-- default eelf log file names -->

+    <property name="generalLogName" value="error" />

+    <property name="metricsLogName" value="metrics" />

+    <property name="auditLogName" value="audit" />

+    <property name="debugLogName" value="debug" />

+    <property name="queueSize" value="256" />

+    <property name="maxFileSize" value="50MB" />

+    <property name="maxHistory" value="30" />

+    <property name="totalSizeCap" value="10GB" />

+    <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+    <!-- Example evaluator filter applied against console appender -->

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

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

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

+    <!-- EELF Appenders -->

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

+    <!-- The EELFAppender is used to record events to the general application 

+                log -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELF">

+        <file>${logDirectory}/${generalLogName}.log</file>

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

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELF">

+        <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->

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

+            <level>INFO</level>

+        </filter>

+        <queueSize>256</queueSize>

+        <appender-ref ref="EELF" />

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFAudit">

+        <file>${logDirectory}/${auditLogName}.log</file>

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

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFAudit">

+        <queueSize>256</queueSize>

+        <appender-ref ref="EELFAudit" />

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFMetrics">

+        <file>${logDirectory}/${metricsLogName}.log</file>

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

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFMetrics">

+        <queueSize>256</queueSize>

+        <appender-ref ref="EELFMetrics" />

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFDebug">

+        <file>${logDirectory}/${debugLogName}.log</file>

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

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFDebug">

+        <queueSize>256</queueSize>

+        <appender-ref ref="EELFDebug" />

+        <includeCallerData>true</includeCallerData>

+    </appender>

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

+    <!-- EELF loggers -->

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

+    <logger additivity="false" level="info" name="com.att.eelf">

+        <appender-ref ref="asyncEELF" />

+        <appender-ref ref="asyncEELFDebug" />

+    </logger>

+    <logger additivity="false" level="info" name="com.att.eelf.security">

+        <appender-ref ref="asyncEELFSecurity" />

+    </logger>

+    <logger additivity="false" level="info" name="com.att.eelf.perf">

+        <appender-ref ref="asyncEELFPerformance" />

+    </logger>

+    <logger additivity="false" level="info" name="com.att.eelf.server">

+        <appender-ref ref="asyncEELFServer" />

+    </logger>

+    <logger additivity="false" level="info" name="com.att.eelf.policy">

+        <appender-ref ref="asyncEELFPolicy" />

+    </logger>

+    <logger additivity="false" level="info" name="com.att.eelf.audit">

+        <appender-ref ref="asyncEELFAudit" />

+    </logger>

+    <logger additivity="false" level="info" name="com.att.eelf.metrics">

+        <appender-ref ref="asyncEELFMetrics" />

+    </logger>

+    <!-- Spring related loggers -->

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

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

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

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

+    <logger level="INFO" name="com.att" />

+    <!-- Model Loader loggers -->

+    <logger level="INFO" name="org.openecomp.modelloader" />

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

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

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

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

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

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

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

+                May aid in troubleshooting) -->

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

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

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

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

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

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

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

+    <!-- logback internals logging -->

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

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

+    <root>

+        <appender-ref ref="asyncEELF" />

+        <!-- <appender-ref ref="asyncEELFDebug" /> -->

+    </root>

+</configuration>

diff --git a/kubernetes/config/docker/init/src/config/log/appc/org.ops4j.pax.logging.cfg b/kubernetes/config/docker/init/src/config/log/appc/org.ops4j.pax.logging.cfg
new file mode 100644
index 0000000..c582620
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/appc/org.ops4j.pax.logging.cfg
@@ -0,0 +1,151 @@
+################################################################################
+#
+#    Licensed to the Apache Software Foundation (ASF) under one or more
+#    contributor license agreements.  See the NOTICE file distributed with
+#    this work for additional information regarding copyright ownership.
+#    The ASF licenses this file to You 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.
+#
+################################################################################
+
+# Root logger
+log4j.rootLogger=INFO, async, osgi:*
+log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer
+
+maxFileSize=100MB
+maxBackupIndex=20
+logDir=/var/log/onap
+componentName=appc
+logDirectory=${logDir}/${componentName}
+karafLogName=karaf
+errorLogName=error
+metricsLogName=metrics
+auditLogName=audit
+debugLogName=debug
+
+
+# CONSOLE appender not used by default
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSS}\t%-16.16t\t%-5.5p\t%c{36}\t%X{bundle.id} - %X{bundle.name} - %X{bundle.version}\t%m%n
+
+# Async appender forwarding to file appender
+log4j.appender.async=org.apache.log4j.AsyncAppender
+log4j.appender.async.appenders=out
+
+# File appender
+log4j.appender.out=org.apache.log4j.RollingFileAppender
+log4j.appender.out.layout=org.apache.log4j.xml.XMLLayout
+log4j.appender.out.layout.Properties=true
+log4j.appender.out.file=${logDirectory}/${karafLogName}.log
+log4j.appender.out.append=true
+log4j.appender.out.maxFileSize=${maxFileSize}
+log4j.appender.out.maxBackupIndex=${maxBackupIndex}
+
+# Sift appender
+log4j.appender.sift=org.apache.log4j.sift.MDCSiftingAppender
+log4j.appender.sift.key=bundle.name
+log4j.appender.sift.default=karaf
+log4j.appender.sift.appender=org.apache.log4j.RollingFileAppender
+log4j.appender.sift.appender.layout=org.apache.log4j.xml.XMLLayout
+log4j.appender.sift.appender.layout.Properties=true
+log4j.appender.sift.appender.file=${logDirectory}/$\\{bundle.name\\}.log
+log4j.appender.sift.appender.append=true
+
+
+
+log4j.category.org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPusherImpl=DEBUG
+log4j.category.org.opendaylight.controller.netconf.persist.impl.osgi.ConfigPersisterActivator=DEBUG
+
+
+#ECOMP Debug appender
+log4j.appender.debug=org.apache.log4j.RollingFileAppender
+log4j.appender.debug.key=bundle.name
+log4j.appender.debug.default=karaf
+log4j.appender.debug.appName=EELFDebug
+log4j.appender.debug.layout=org.apache.log4j.xml.XMLLayout
+log4j.appender.debug.layout.Properties=true
+log4j.appender.debug.file=${logDirectory}/${debugLogName}.log
+log4j.appender.debug.append=true
+log4j.appender.debug.maxFileSize=${maxFileSize}
+log4j.appender.debug.maxBackupIndex=${maxBackupIndex}
+#log4j.appender.debug.filter.f1=org.apache.log4j.varia.LevelRangeFilter
+#log4j.appender.debug.filter.f1.LevelMax=WARN
+#log4j.appender.debug.filter.f1.LevelMin=TRACE
+
+
+#Error appender
+log4j.appender.error=org.apache.log4j.RollingFileAppender
+log4j.appender.error.appName=EELFError
+log4j.appender.error.File=${logDirectory}/${errorLogName}.log
+log4j.appender.error.Threshold=ERROR
+log4j.appender.error.maxFileSize=${maxFileSize}
+log4j.appender.error.maxBackupIndex=${maxBackupIndex}
+log4j.appender.error.layout=org.apache.log4j.xml.XMLLayout
+log4j.appender.error.layout.Properties=true
+
+#Metrics appender
+log4j.appender.metric=org.apache.log4j.RollingFileAppender
+log4j.appender.metric.appName=EELFMetrics
+log4j.appender.metric.File=${logDirectory}/${metricsLogName}.log
+log4j.appender.metric.maxFileSize=${maxFileSize}
+log4j.appender.metric.maxBackupIndex=${maxBackupIndex}
+log4j.appender.metric.layout=org.apache.log4j.xml.XMLLayout
+log4j.appender.metric.layout.Properties=true
+
+#Audit appender
+log4j.appender.audit=org.apache.log4j.RollingFileAppender
+log4j.appender.audit.appName=EELFAudit
+log4j.appender.audit.File=${logDirectory}/${auditLogName}.log
+log4j.appender.audit.maxFileSize=${maxFileSize}
+log4j.appender.audit.maxBackupIndex=${maxBackupIndex}
+log4j.appender.audit.layout=org.apache.log4j.xml.XMLLayout
+log4j.appender.audit.layout.Properties=true
+
+#Loggers
+#Routing of all messages from root logger
+log4j.logger.com.att=TRACE, debug, error
+#Store to the same log file messages from upper level appender or not
+log4j.additivity.com.att=false
+
+#EELFManager loggers
+#EELF parent logger
+log4j.logger.com.att.eelf=TRACE, debug
+log4j.additivity.com.att.eelf=false
+
+#Audit logger routing
+log4j.logger.com.att.eelf.audit=DEBUG, audit
+log4j.additivity.com.att.eelf.audit=false
+
+#Metric logger routing
+log4j.logger.com.att.eelf.metrics=DEBUG, metric
+log4j.additivity.com.att.eelf.metrics=false
+
+#Performance logger routing
+log4j.logger.com.att.eelf.perf=DEBUG, metric
+log4j.additivity.com.att.eelf.perf=false
+
+#Server logger routing
+log4j.logger.com.att.eelf.server=DEBUG, debug
+log4j.additivity.com.att.eelf.server=false
+
+#Policy logger routing
+log4j.logger.com.att.eelf.policy=DEBUG, debug
+log4j.additivity.com.att.eelf.policy=false
+
+#Error logger routing
+log4j.logger.com.att.eelf.error=DEBUG, error
+log4j.additivity.com.att.eelf.error=false
+
+#Debug logger routing
+log4j.logger.com.att.eelf.debug=DEBUG, debug
+log4j.additivity.com.att.eelf.debug=false
diff --git a/kubernetes/config/docker/init/src/config/log/filebeat/log4j/filebeat.yml b/kubernetes/config/docker/init/src/config/log/filebeat/log4j/filebeat.yml
new file mode 100644
index 0000000..90fce2b
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/filebeat/log4j/filebeat.yml
@@ -0,0 +1,48 @@
+filebeat.prospectors:

+#it is mandatory, in our case it's log

+- input_type: log

+  #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.

+  paths:

+    - /var/log/onap/*/*/*.log

+    - /var/log/onap/*/*.log

+    

+  # The below commented properties are for time-based rolling policy. But as the log4j 1.2x does not support time-based rolling these properties are not set

+  #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive

+  #ignore_older: 48h

+  # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit

+  #clean_inactive: 96h

+  

+  #Multiline properties for log4j xml log events

+  multiline.pattern: '</log4j:event>'

+  multiline.negate: true

+  multiline.match: before

+  #multiline.max_lines: 500

+  #multiline.timeout: 5s

+   

+# Name of the registry file. If a relative path is used, it is considered relative to the

+# data path. Else full qualified file name.

+#filebeat.registry_file: ${path.data}/registry

+

+

+output.logstash:

+  #List of logstash server ip addresses with port number. 

+  #But, in our case, this will be the loadbalancer IP address.

+  #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.

+  hosts: ["logstash.onap-log:5044"]

+  #If enable will do load balancing among availabe Logstash, automatically.

+  loadbalance: true

+  

+  #The list of root certificates for server verifications. 

+  #If certificate_authorities is empty or not set, the trusted 

+  #certificate authorities of the host system are used.

+  #ssl.certificate_authorities: $ssl.certificate_authorities

+  

+  #The path to the certificate for SSL client authentication. If the certificate is not specified, 

+  #client authentication is not available.

+  #ssl.certificate: $ssl.certificate

+  

+  #The client certificate key used for client authentication. 

+  #ssl.key: $ssl.key

+  

+  #The passphrase used to decrypt an encrypted key stored in the configured key file

+  #ssl.key_passphrase: $ssl.key_passphrase

diff --git a/kubernetes/config/docker/init/src/config/log/filebeat/logback/filebeat.yml b/kubernetes/config/docker/init/src/config/log/filebeat/logback/filebeat.yml
new file mode 100644
index 0000000..9a60dbd
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/filebeat/logback/filebeat.yml
@@ -0,0 +1,40 @@
+filebeat.prospectors:
+#it is mandatory, in our case it's log
+- input_type: log
+  #This is the canolical path as mentioned in logback.xml, *.* means it will monitor all files in the directory.
+  paths:
+    - /var/log/onap/*/*/*.log
+    - /var/log/onap/*/*.log
+  #Files older than this should be ignored.In our case it will be 48 hours i.e. 2 days. It is a helping flag for clean_inactive
+  ignore_older: 48h
+  # Remove the registry entry for a file that is more than the specified time. In our case it will be 96 hours, i.e. 4 days. It will help to keep registry records with in limit
+  clean_inactive: 96h
+   
+   
+# Name of the registry file. If a relative path is used, it is considered relative to the
+# data path. Else full qualified file name.
+#filebeat.registry_file: ${path.data}/registry
+
+
+output.logstash:
+  #List of logstash server ip addresses with port number. 
+  #But, in our case, this will be the loadbalancer IP address.
+  #For the below property to work the loadbalancer or logstash should expose 5044 port to listen the filebeat events or port in the property should be changed appropriately.
+  hosts: ["logstash.onap-log:5044"]
+  #If enable will do load balancing among availabe Logstash, automatically.
+  loadbalance: true
+  
+  #The list of root certificates for server verifications. 
+  #If certificate_authorities is empty or not set, the trusted 
+  #certificate authorities of the host system are used.
+  #ssl.certificate_authorities: $ssl.certificate_authorities
+  
+  #The path to the certificate for SSL client authentication. If the certificate is not specified, 
+  #client authentication is not available.
+  #ssl.certificate: $ssl.certificate
+  
+  #The client certificate key used for client authentication. 
+  #ssl.key: $ssl.key
+  
+  #The passphrase used to decrypt an encrypted key stored in the configured key file
+  #ssl.key_passphrase: $ssl.key_passphrase
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.apihandler-infra.xml b/kubernetes/config/docker/init/src/config/log/mso/logback.apihandler-infra.xml
new file mode 100644
index 0000000..d6c1188
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/mso/logback.apihandler-infra.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<configuration scan="true" scanPeriod="3 seconds" debug="true">

+   <property name="logDir" value="/var/log/onap" />

+   <property name="componentName" value="mso" />

+   <property name="subComponentName" value="apiHandlerInfra" />

+   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+   <!--  log file names -->

+   <property name="errorLogName" value="error" />

+   <property name="metricsLogName" value="metrics" />

+   <property name="auditLogName" value="audit" />

+   <property name="debugLogName" value="debug" />

+   <property name="queueSize" value="256" />

+   <property name="maxFileSize" value="50MB" />

+   <property name="maxHistory" value="30" />

+   <property name="totalSizeCap" value="10GB" />

+   <!-- EELF Appenders -->

+   <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${auditLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFAudit" />

+   </appender>

+   <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${metricsLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFMetrics" />

+   </appender>

+   <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${errorLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

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

+         <level>INFO</level>

+      </filter>

+   </appender>

+   <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFError" />

+   </appender>

+   <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${debugLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFDebug" />

+      <includeCallerData>true</includeCallerData>

+   </appender>

+   <!--  EELF loggers -->

+   <logger name="com.att.eelf.audit" level="info" additivity="false">

+      <appender-ref ref="asyncEELFAudit" />

+   </logger>

+   <logger name="com.att.eelf.metrics" level="info" additivity="false">

+      <appender-ref ref="asyncEELFMetrics" />

+   </logger>

+   <logger name="com.att.eelf.error" level="info" additivity="false">

+      <appender-ref ref="asyncEELFError" />

+   </logger>

+   <logger name="com.att.eelf.debug" level="debug" additivity="false">

+      <appender-ref ref="asyncEELFDebug" />

+   </logger>

+   <root level="INFO">

+      <appender-ref ref="asyncEELFDebug" />

+   </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.appc.xml b/kubernetes/config/docker/init/src/config/log/mso/logback.appc.xml
new file mode 100644
index 0000000..ef9589a
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/mso/logback.appc.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<configuration scan="true" scanPeriod="3 seconds" debug="true">

+   <property name="logDir" value="/var/log/onap" />

+   <property name="componentName" value="mso" />

+   <property name="subComponentName" value="appcAdapter" />

+   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+   <!--  log file names -->

+   <property name="errorLogName" value="error" />

+   <property name="metricsLogName" value="metrics" />

+   <property name="auditLogName" value="audit" />

+   <property name="debugLogName" value="debug" />

+   <property name="queueSize" value="256" />

+   <property name="maxFileSize" value="50MB" />

+   <property name="maxHistory" value="30" />

+   <property name="totalSizeCap" value="10GB" />

+   <!-- EELF Appenders -->

+   <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${auditLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFAudit" />

+   </appender>

+   <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${metricsLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFMetrics" />

+   </appender>

+   <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${errorLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

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

+         <level>INFO</level>

+      </filter>

+   </appender>

+   <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFError" />

+   </appender>

+   <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${debugLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFDebug" />

+      <includeCallerData>true</includeCallerData>

+   </appender>

+   <!--  EELF loggers -->

+   <logger name="com.att.eelf.audit" level="info" additivity="false">

+      <appender-ref ref="asyncEELFAudit" />

+   </logger>

+   <logger name="com.att.eelf.metrics" level="info" additivity="false">

+      <appender-ref ref="asyncEELFMetrics" />

+   </logger>

+   <logger name="com.att.eelf.error" level="info" additivity="false">

+      <appender-ref ref="asyncEELFError" />

+   </logger>

+   <logger name="com.att.eelf.debug" level="debug" additivity="false">

+      <appender-ref ref="asyncEELFDebug" />

+   </logger>

+   <root level="INFO">

+      <appender-ref ref="asyncEELFDebug" />

+   </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.asdc.xml b/kubernetes/config/docker/init/src/config/log/mso/logback.asdc.xml
new file mode 100644
index 0000000..99615e3
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/mso/logback.asdc.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<configuration scan="true" scanPeriod="3 seconds" debug="true">

+   <property name="logDir" value="/var/log/onap" />

+   <property name="componentName" value="mso" />

+   <property name="subComponentName" value="asdcController" />

+   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+   <!--  log file names -->

+   <property name="errorLogName" value="error" />

+   <property name="metricsLogName" value="metrics" />

+   <property name="auditLogName" value="audit" />

+   <property name="debugLogName" value="debug" />

+   <property name="queueSize" value="256" />

+   <property name="maxFileSize" value="50MB" />

+   <property name="maxHistory" value="30" />

+   <property name="totalSizeCap" value="10GB" />

+   <!-- EELF Appenders -->

+   <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${auditLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFAudit" />

+   </appender>

+   <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${metricsLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFMetrics" />

+   </appender>

+   <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${errorLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

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

+         <level>INFO</level>

+      </filter>

+   </appender>

+   <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFError" />

+   </appender>

+   <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${debugLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFDebug" />

+      <includeCallerData>true</includeCallerData>

+   </appender>

+   <!--  EELF loggers -->

+   <logger name="com.att.eelf.audit" level="info" additivity="false">

+      <appender-ref ref="asyncEELFAudit" />

+   </logger>

+   <logger name="com.att.eelf.metrics" level="info" additivity="false">

+      <appender-ref ref="asyncEELFMetrics" />

+   </logger>

+   <logger name="com.att.eelf.error" level="info" additivity="false">

+      <appender-ref ref="asyncEELFError" />

+   </logger>

+   <logger name="com.att.eelf.debug" level="debug" additivity="false">

+      <appender-ref ref="asyncEELFDebug" />

+   </logger>

+   <root level="INFO">

+      <appender-ref ref="asyncEELFDebug" />

+   </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.bpmn.xml b/kubernetes/config/docker/init/src/config/log/mso/logback.bpmn.xml
new file mode 100644
index 0000000..2e64259
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/mso/logback.bpmn.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<configuration scan="true" scanPeriod="3 seconds" debug="true">

+   <property name="logDir" value="/var/log/onap" />

+   <property name="componentName" value="mso" />

+   <property name="subComponentName" value="bpmn" />

+   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+   <!--  log file names -->

+   <property name="errorLogName" value="error" />

+   <property name="metricsLogName" value="metrics" />

+   <property name="auditLogName" value="audit" />

+   <property name="debugLogName" value="debug" />

+   <property name="queueSize" value="256" />

+   <property name="maxFileSize" value="50MB" />

+   <property name="maxHistory" value="30" />

+   <property name="totalSizeCap" value="10GB" />

+   <!-- EELF Appenders -->

+   <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${auditLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFAudit" />

+   </appender>

+   <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${metricsLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFMetrics" />

+   </appender>

+   <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${errorLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

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

+         <level>INFO</level>

+      </filter>

+   </appender>

+   <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFError" />

+   </appender>

+   <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${debugLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFDebug" />

+      <includeCallerData>true</includeCallerData>

+   </appender>

+   <!--  EELF loggers -->

+   <logger name="com.att.eelf.audit" level="info" additivity="false">

+      <appender-ref ref="asyncEELFAudit" />

+   </logger>

+   <logger name="com.att.eelf.metrics" level="info" additivity="false">

+      <appender-ref ref="asyncEELFMetrics" />

+   </logger>

+   <logger name="com.att.eelf.error" level="info" additivity="false">

+      <appender-ref ref="asyncEELFError" />

+   </logger>

+   <logger name="com.att.eelf.debug" level="debug" additivity="false">

+      <appender-ref ref="asyncEELFDebug" />

+   </logger>

+   <root level="INFO">

+      <appender-ref ref="asyncEELFDebug" />

+   </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.msorequestsdbadapter.xml b/kubernetes/config/docker/init/src/config/log/mso/logback.msorequestsdbadapter.xml
new file mode 100644
index 0000000..e6e0591
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/mso/logback.msorequestsdbadapter.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<configuration scan="true" scanPeriod="3 seconds" debug="true">

+   <property name="logDir" value="/var/log/onap" />

+   <property name="componentName" value="mso" />

+   <property name="subComponentName" value="requestDB" />

+   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+   <!--  log file names -->

+   <property name="errorLogName" value="error" />

+   <property name="metricsLogName" value="metrics" />

+   <property name="auditLogName" value="audit" />

+   <property name="debugLogName" value="debug" />

+   <property name="queueSize" value="256" />

+   <property name="maxFileSize" value="50MB" />

+   <property name="maxHistory" value="30" />

+   <property name="totalSizeCap" value="10GB" />

+   <!-- EELF Appenders -->

+   <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${auditLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFAudit" />

+   </appender>

+   <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${metricsLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFMetrics" />

+   </appender>

+   <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${errorLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

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

+         <level>INFO</level>

+      </filter>

+   </appender>

+   <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFError" />

+   </appender>

+   <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${debugLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFDebug" />

+      <includeCallerData>true</includeCallerData>

+   </appender>

+   <!--  EELF loggers -->

+   <logger name="com.att.eelf.audit" level="info" additivity="false">

+      <appender-ref ref="asyncEELFAudit" />

+   </logger>

+   <logger name="com.att.eelf.metrics" level="info" additivity="false">

+      <appender-ref ref="asyncEELFMetrics" />

+   </logger>

+   <logger name="com.att.eelf.error" level="info" additivity="false">

+      <appender-ref ref="asyncEELFError" />

+   </logger>

+   <logger name="com.att.eelf.debug" level="debug" additivity="false">

+      <appender-ref ref="asyncEELFDebug" />

+   </logger>

+   <root level="INFO">

+      <appender-ref ref="asyncEELFDebug" />

+   </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.network.xml b/kubernetes/config/docker/init/src/config/log/mso/logback.network.xml
new file mode 100644
index 0000000..3e5c670
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/mso/logback.network.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<configuration scan="true" scanPeriod="3 seconds" debug="true">

+   <property name="logDir" value="/var/log/onap" />

+   <property name="componentName" value="mso" />

+   <property name="subComponentName" value="networkAdapter" />

+   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+   <!--  log file names -->

+   <property name="errorLogName" value="error" />

+   <property name="metricsLogName" value="metrics" />

+   <property name="auditLogName" value="audit" />

+   <property name="debugLogName" value="debug" />

+   <property name="queueSize" value="256" />

+   <property name="maxFileSize" value="50MB" />

+   <property name="maxHistory" value="30" />

+   <property name="totalSizeCap" value="10GB" />

+   <!-- EELF Appenders -->

+   <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${auditLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFAudit" />

+   </appender>

+   <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${metricsLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFMetrics" />

+   </appender>

+   <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${errorLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

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

+         <level>INFO</level>

+      </filter>

+   </appender>

+   <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFError" />

+   </appender>

+   <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${debugLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFDebug" />

+      <includeCallerData>true</includeCallerData>

+   </appender>

+   <!--  EELF loggers -->

+   <logger name="com.att.eelf.audit" level="info" additivity="false">

+      <appender-ref ref="asyncEELFAudit" />

+   </logger>

+   <logger name="com.att.eelf.metrics" level="info" additivity="false">

+      <appender-ref ref="asyncEELFMetrics" />

+   </logger>

+   <logger name="com.att.eelf.error" level="info" additivity="false">

+      <appender-ref ref="asyncEELFError" />

+   </logger>

+   <logger name="com.att.eelf.debug" level="debug" additivity="false">

+      <appender-ref ref="asyncEELFDebug" />

+   </logger>

+   <root level="INFO">

+      <appender-ref ref="asyncEELFDebug" />

+   </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.sdnc.xml b/kubernetes/config/docker/init/src/config/log/mso/logback.sdnc.xml
new file mode 100644
index 0000000..07d1df3
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/mso/logback.sdnc.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<configuration scan="true" scanPeriod="3 seconds" debug="true">

+   <property name="logDir" value="/var/log/onap" />

+   <property name="componentName" value="mso" />

+   <property name="subComponentName" value="sdncAdapter" />

+   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+   <!--  log file names -->

+   <property name="errorLogName" value="error" />

+   <property name="metricsLogName" value="metrics" />

+   <property name="auditLogName" value="audit" />

+   <property name="debugLogName" value="debug" />

+   <property name="queueSize" value="256" />

+   <property name="maxFileSize" value="50MB" />

+   <property name="maxHistory" value="30" />

+   <property name="totalSizeCap" value="10GB" />

+   <!-- EELF Appenders -->

+   <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${auditLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFAudit" />

+   </appender>

+   <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${metricsLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFMetrics" />

+   </appender>

+   <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${errorLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

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

+         <level>INFO</level>

+      </filter>

+   </appender>

+   <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFError" />

+   </appender>

+   <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${debugLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFDebug" />

+      <includeCallerData>true</includeCallerData>

+   </appender>

+   <!--  EELF loggers -->

+   <logger name="com.att.eelf.audit" level="info" additivity="false">

+      <appender-ref ref="asyncEELFAudit" />

+   </logger>

+   <logger name="com.att.eelf.metrics" level="info" additivity="false">

+      <appender-ref ref="asyncEELFMetrics" />

+   </logger>

+   <logger name="com.att.eelf.error" level="info" additivity="false">

+      <appender-ref ref="asyncEELFError" />

+   </logger>

+   <logger name="com.att.eelf.debug" level="debug" additivity="false">

+      <appender-ref ref="asyncEELFDebug" />

+   </logger>

+   <root level="INFO">

+      <appender-ref ref="asyncEELFDebug" />

+   </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.tenant.xml b/kubernetes/config/docker/init/src/config/log/mso/logback.tenant.xml
new file mode 100644
index 0000000..6e5bc27
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/mso/logback.tenant.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<configuration scan="true" scanPeriod="3 seconds" debug="true">

+   <property name="logDir" value="/var/log/onap" />

+   <property name="componentName" value="mso" />

+   <property name="subComponentName" value="tenantAdapter" />

+   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+   <!--  log file names -->

+   <property name="errorLogName" value="error" />

+   <property name="metricsLogName" value="metrics" />

+   <property name="auditLogName" value="audit" />

+   <property name="debugLogName" value="debug" />

+   <property name="queueSize" value="256" />

+   <property name="maxFileSize" value="50MB" />

+   <property name="maxHistory" value="30" />

+   <property name="totalSizeCap" value="10GB" />

+   <!-- EELF Appenders -->

+   <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${auditLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFAudit" />

+   </appender>

+   <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${metricsLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFMetrics" />

+   </appender>

+   <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${errorLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

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

+         <level>INFO</level>

+      </filter>

+   </appender>

+   <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFError" />

+   </appender>

+   <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${debugLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFDebug" />

+      <includeCallerData>true</includeCallerData>

+   </appender>

+   <!--  EELF loggers -->

+   <logger name="com.att.eelf.audit" level="info" additivity="false">

+      <appender-ref ref="asyncEELFAudit" />

+   </logger>

+   <logger name="com.att.eelf.metrics" level="info" additivity="false">

+      <appender-ref ref="asyncEELFMetrics" />

+   </logger>

+   <logger name="com.att.eelf.error" level="info" additivity="false">

+      <appender-ref ref="asyncEELFError" />

+   </logger>

+   <logger name="com.att.eelf.debug" level="debug" additivity="false">

+      <appender-ref ref="asyncEELFDebug" />

+   </logger>

+   <root level="INFO">

+      <appender-ref ref="asyncEELFDebug" />

+   </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/mso/logback.vnf.xml b/kubernetes/config/docker/init/src/config/log/mso/logback.vnf.xml
new file mode 100644
index 0000000..aca0fff
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/mso/logback.vnf.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<configuration scan="true" scanPeriod="3 seconds" debug="true">

+   <property name="logDir" value="/var/log/onap" />

+   <property name="componentName" value="mso" />

+   <property name="subComponentName" value="vnfAdapter" />

+   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+   <!--  log file names -->

+   <property name="errorLogName" value="error" />

+   <property name="metricsLogName" value="metrics" />

+   <property name="auditLogName" value="audit" />

+   <property name="debugLogName" value="debug" />

+   <property name="queueSize" value="256" />

+   <property name="maxFileSize" value="50MB" />

+   <property name="maxHistory" value="30" />

+   <property name="totalSizeCap" value="10GB" />

+   <!-- EELF Appenders -->

+   <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${auditLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFAudit" />

+   </appender>

+   <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${metricsLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFMetrics" />

+   </appender>

+   <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${errorLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

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

+         <level>INFO</level>

+      </filter>

+   </appender>

+   <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFError" />

+   </appender>

+   <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${debugLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFDebug" />

+      <includeCallerData>true</includeCallerData>

+   </appender>

+   <!--  EELF loggers -->

+   <logger name="com.att.eelf.audit" level="info" additivity="false">

+      <appender-ref ref="asyncEELFAudit" />

+   </logger>

+   <logger name="com.att.eelf.metrics" level="info" additivity="false">

+      <appender-ref ref="asyncEELFMetrics" />

+   </logger>

+   <logger name="com.att.eelf.error" level="info" additivity="false">

+      <appender-ref ref="asyncEELFError" />

+   </logger>

+   <logger name="com.att.eelf.debug" level="debug" additivity="false">

+      <appender-ref ref="asyncEELFDebug" />

+   </logger>

+   <root level="INFO">

+      <appender-ref ref="asyncEELFDebug" />

+   </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/policy/drools/logback.xml b/kubernetes/config/docker/init/src/config/log/policy/drools/logback.xml
new file mode 100644
index 0000000..2b6d11e
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/policy/drools/logback.xml
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  ============LICENSE_START=======================================================

+  policy-management

+  ================================================================================

+  Copyright (C) 2017 AT&amp;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.

+  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=========================================================

+  -->

+<configuration debug="true" scan="true" scanPeriod="3 seconds">

+   <!--<jmxConfigurator /> -->

+   <!--  specify the base path of the log directory --> 

+   <property name="logDir" value="/var/log/onap" />

+   <!--  specify the component name -->

+   <property name="componentName" value="policy" />

+   <!-- specify the sub component name -->

+   <property name="subComponentName" value="drools" />

+   <!-- The directories where logs are written --> 

+   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+   <!--  log file names -->

+   <property name="errorLogName" value="error" />

+   <property name="metricsLogName" value="metrics" />

+   <property name="auditLogName" value="audit" />

+   <property name="debugLogName" value="debug" />

+   <property name="queueSize" value="256" />

+   <property name="maxFileSize" value="50MB" />

+   <property name="maxHistory" value="30" />

+   <property name="totalSizeCap" value="10GB" />

+   <!-- Example evaluator filter applied against console appender -->

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

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

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

+   <!-- EELF Appenders -->

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

+   <!-- The EELFAppender is used to record events to the general application 

+    log -->

+   <!-- EELF Audit Appender. This appender is used to record audit engine 

+    related logging events. The audit logger and appender are specializations 

+    of the EELF application root logger and appender. This can be used to segregate 

+    Policy engine events from other components, or it can be eliminated to record 

+    these events as part of the application root log. -->

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFAudit">

+      <file>${logDirectory}/${auditLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFAudit">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFAudit" />

+   </appender>

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFMetrics">

+      <file>${logDirectory}/${metricsLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFMetrics">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFMetrics" />

+   </appender>

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFError">

+      <file>${logDirectory}/${errorLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

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

+         <level>INFO</level>

+      </filter>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFError">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFError" />

+   </appender>

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFDebug">

+      <file>${logDirectory}/${debugLogName}.log</file>

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

+         <fileNamePattern>${logDirectory}/${debugLogName}.%i.log.zip</fileNamePattern>

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFDebug">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFDebug" />

+      <includeCallerData>true</includeCallerData>

+   </appender>

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

+   <!--  EELF loggers -->

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

+   <logger additivity="false" level="info" name="com.att.eelf.audit">

+      <appender-ref ref="asyncEELFAudit" />

+   </logger>

+   <logger additivity="false" level="info" name="com.att.eelf.metrics">

+      <appender-ref ref="asyncEELFMetrics" />

+   </logger>

+   <logger additivity="false" level="info" name="com.att.eelf.error">

+      <appender-ref ref="asyncEELFError" />

+   </logger>

+   <logger additivity="false" level="debug" name="com.att.eelf.debug">

+      <appender-ref ref="asyncEELFDebug" />

+   </logger>

+   <root level="INFO">

+      <appender-ref ref="asyncEELFDebug" />

+      <appender-ref ref="asyncEELFError" />

+   </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/policy/ep_sdk_app/logback.xml b/kubernetes/config/docker/init/src/config/log/policy/ep_sdk_app/logback.xml
new file mode 100644
index 0000000..d0871bd
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/policy/ep_sdk_app/logback.xml
@@ -0,0 +1,190 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  ================================================================================

+  eCOMP Portal SDK

+  ================================================================================

+  Copyright (C) 2017 AT&amp;T Intellectual Property

+  ================================================================================

+  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.

+  ================================================================================

+  -->

+<configuration debug="true" scan="true" scanPeriod="3 seconds">

+   <!-- 

+  Logback files for the ECOMP SDK Application "ecomp_app"

+  are created in directory ${catalina.base}/logs/ecomp_app;

+  e.g., apache-tomcat-8.0.35/logs/ecomp_app/application.log  

+  -->

+   <!--<jmxConfigurator /> -->

+   <!--  specify the base path of the log directory -->

+   <property name="logDir" value="/var/log/onap" />

+   <!-- specify the component name -->

+   <property name="componentName" value="policy" />

+   <!-- specify the sub component name -->

+   <property name="subComponentName" value="ep_sdk_app" />

+   <!-- The directories where logs are written -->

+   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+   <!--  log file names -->

+   <property name="generalLogName" value="application" />

+   <property name="errorLogName" value="error" />

+   <property name="metricsLogName" value="metrics" />

+   <property name="auditLogName" value="audit" />

+   <property name="debugLogName" value="debug" />

+   <property name="queueSize" value="256" />

+   <property name="maxFileSize" value="50MB" />

+   <property name="maxHistory" value="30" />

+   <property name="totalSizeCap" value="10GB" />

+   <!--

+  These loggers are not used in code (yet). 

+  <property name="securityLogName" value="security" />

+  <property name="policyLogName" value="policy" />

+  <property name="performanceLogName" value="performance" />

+  <property name="serverLogName" value="server" />

+   -->

+   <!-- Example evaluator filter applied against console appender -->

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

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

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

+   <!-- EELF Appenders -->

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

+   <!-- The EELFAppender is used to record events to the general application 

+    log -->

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELF">

+      <file>${logDirectory}/${generalLogName}.log</file>

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

+         <!-- daily rollover -->

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+      <filter class="org.openecomp.portalapp.util.CustomLoggingFilter" />

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELF">

+      <queueSize>${queueSize}</queueSize>

+      <!-- Class name is part of caller data -->

+      <includeCallerData>true</includeCallerData>

+      <appender-ref ref="EELF" />

+   </appender>

+   <!-- EELF Audit Appender. This appender is used to record audit engine 

+    related logging events. The audit logger and appender are specializations 

+    of the EELF application root logger and appender. This can be used to segregate 

+    Policy engine events from other components, or it can be eliminated to record 

+    these events as part of the application root log. -->

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFAudit">

+      <file>${logDirectory}/${auditLogName}.log</file>

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

+         <!-- daily rollover -->

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFAudit">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFAudit" />

+   </appender>

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFMetrics">

+      <file>${logDirectory}/${metricsLogName}.log</file>

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

+         <!-- daily rollover -->

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFMetrics">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFMetrics" />

+   </appender>

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFError">

+      <file>${logDirectory}/${errorLogName}.log</file>

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

+         <!-- daily rollover -->

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

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

+         <level>INFO</level>

+      </filter>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFError">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFError" />

+   </appender>

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFDebug">

+      <file>${logDirectory}/${debugLogName}.log</file>

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

+         <!-- daily rollover -->

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFDebug">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFDebug" />

+      <includeCallerData>true</includeCallerData>

+   </appender>

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

+   <!--  EELF loggers -->

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

+   <logger additivity="false" level="info" name="com.att.eelf.audit">

+      <appender-ref ref="asyncEELFAudit" />

+   </logger>

+   <logger additivity="false" level="info" name="com.att.eelf.metrics">

+      <appender-ref ref="asyncEELFMetrics" />

+   </logger>

+   <logger additivity="false" level="info" name="com.att.eelf.error">

+      <appender-ref ref="asyncEELFError" />

+   </logger>

+   <logger additivity="false" level="debug" name="com.att.eelf.debug">

+      <appender-ref ref="asyncEELFDebug" />

+   </logger>

+   <root level="INFO">

+      <appender-ref ref="asyncEELFDebug" />

+   </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/policy/pypdpserver/logback.xml b/kubernetes/config/docker/init/src/config/log/policy/pypdpserver/logback.xml
new file mode 100644
index 0000000..c4b596b
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/policy/pypdpserver/logback.xml
@@ -0,0 +1,154 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  ============LICENSE_START=======================================================

+  ECOMP Policy Engine

+  ================================================================================

+  Copyright (C) 2017 AT&amp;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.

+  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=========================================================

+  -->

+<configuration debug="true" scan="true" scanPeriod="3 seconds">

+   <!--<jmxConfigurator /> -->

+   <!--  specify the base path of the log directory --> 

+   <property name="logDir" value="/var/log/onap" />

+   <!--  specify the component name -->

+   <property name="componentName" value="policy" />

+   <!-- specify the sub component name -->

+   <property name="subComponentName" value="pypdpserver" />

+   <!-- The directories where logs are written --> 

+   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+   <!--  log file names -->

+   <property name="errorLogName" value="error" />

+   <property name="metricsLogName" value="metrics" />

+   <property name="auditLogName" value="audit" />

+   <property name="debugLogName" value="debug" />

+   <property name="queueSize" value="256" />

+   <property name="maxFileSize" value="50MB" />

+   <property name="maxHistory" value="30" />

+   <property name="totalSizeCap" value="10GB" />

+   <!-- Example evaluator filter applied against console appender -->

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

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

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

+   <!-- EELF Appenders -->

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

+   <!-- The EELFAppender is used to record events to the general application 

+    log -->

+   <!-- EELF Audit Appender. This appender is used to record audit engine 

+    related logging events. The audit logger and appender are specializations 

+    of the EELF application root logger and appender. This can be used to segregate 

+    Policy engine events from other components, or it can be eliminated to record 

+    these events as part of the application root log. -->

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFAudit">

+      <file>${logDirectory}/${auditLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFAudit">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFAudit" />

+   </appender>

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFMetrics">

+      <file>${logDirectory}/${metricsLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

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

+        %msg%n"</pattern> -->

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFMetrics">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFMetrics" />

+   </appender>

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFError">

+      <file>${logDirectory}/${errorLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

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

+         <level>INFO</level>

+      </filter>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFError">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFError" />

+   </appender>

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFDebug">

+      <file>${logDirectory}/${debugLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFDebug">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFDebug" />

+      <includeCallerData>true</includeCallerData>

+   </appender>

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

+   <!--  EELF loggers -->

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

+   <logger additivity="false" level="info" name="com.att.eelf.audit">

+      <appender-ref ref="asyncEELFAudit" />

+   </logger>

+   <logger additivity="false" level="info" name="com.att.eelf.metrics">

+      <appender-ref ref="asyncEELFMetrics" />

+   </logger>

+   <logger additivity="false" level="info" name="com.att.eelf.error">

+      <appender-ref ref="asyncEELFError" />

+   </logger>

+   <logger additivity="false" level="debug" name="com.att.eelf.debug">

+      <appender-ref ref="asyncEELFDebug" />

+   </logger>

+   <root level="INFO">

+      <appender-ref ref="asyncEELFDebug" />

+      <appender-ref ref="asyncEELFError" />

+   </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/policy/xacml-pap-rest/logback.xml b/kubernetes/config/docker/init/src/config/log/policy/xacml-pap-rest/logback.xml
new file mode 100644
index 0000000..77068bb
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/policy/xacml-pap-rest/logback.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  ============LICENSE_START=======================================================

+  ECOMP-PAP-REST

+  ================================================================================

+  Copyright (C) 2017 AT&amp;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.

+  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=========================================================

+  -->

+<configuration debug="true" scan="true" scanPeriod="3 seconds">

+   <!--<jmxConfigurator /> -->

+   <!--  specify the base path of the log directory -->

+   <property name="logDir" value="/var/log/onap" />

+   <!--  specify the component name -->

+   <property name="componentName" value="policy" />

+   <!-- specify the sub component name -->

+   <property name="subComponentName" value="xacml-pap-rest" />

+   <!-- The directories where logs are written -->

+   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+   <!--  log file names -->

+   <property name="errorLogName" value="error" />

+   <property name="metricsLogName" value="metrics" />

+   <property name="auditLogName" value="audit" />

+   <property name="debugLogName" value="debug" />

+   <property name="queueSize" value="256" />

+   <property name="maxFileSize" value="50MB" />

+   <property name="maxHistory" value="30" />

+   <property name="totalSizeCap" value="10GB" />

+   <!-- Example evaluator filter applied against console appender -->

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

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

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

+   <!-- EELF Appenders -->

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

+   <!-- The EELFAppender is used to record events to the general application 

+    log -->

+   <!-- EELF Audit Appender. This appender is used to record audit engine 

+    related logging events. The audit logger and appender are specializations 

+    of the EELF application root logger and appender. This can be used to segregate 

+    Policy engine events from other components, or it can be eliminated to record 

+    these events as part of the application root log. -->

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFAudit">

+      <file>${logDirectory}/${auditLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFAudit">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFAudit" />

+   </appender>

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFMetrics">

+      <file>${logDirectory}/${metricsLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

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

+        %msg%n"</pattern> -->

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFMetrics">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFMetrics" />

+   </appender>

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFError">

+      <file>${logDirectory}/${errorLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

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

+         <level>INFO</level>

+      </filter>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFError">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFError" />

+   </appender>

+   <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFDebug">

+      <file>${logDirectory}/${debugLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFDebug">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFDebug" />

+      <includeCallerData>true</includeCallerData>

+   </appender>

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

+   <!--  EELF loggers -->

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

+   <logger additivity="false" level="info" name="com.att.eelf.audit">

+      <appender-ref ref="asyncEELFAudit" />

+   </logger>

+   <logger additivity="false" level="info" name="com.att.eelf.metrics">

+      <appender-ref ref="asyncEELFMetrics" />

+   </logger>

+   <logger additivity="false" level="info" name="com.att.eelf.error">

+      <appender-ref ref="asyncEELFError" />

+   </logger>

+   <logger additivity="false" level="debug" name="com.att.eelf.debug">

+      <appender-ref ref="asyncEELFDebug" />

+   </logger>

+   <root level="INFO">

+      <appender-ref ref="asyncEELFDebug" />

+   </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/policy/xacml-pdp-rest/logback.xml b/kubernetes/config/docker/init/src/config/log/policy/xacml-pdp-rest/logback.xml
new file mode 100644
index 0000000..c9c05d9
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/policy/xacml-pdp-rest/logback.xml
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  ============LICENSE_START=======================================================

+  ECOMP-PDP-REST

+  ================================================================================

+  Copyright (C) 2017 AT&amp;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.

+  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=========================================================

+  -->

+<configuration scan="true" scanPeriod="3 seconds" debug="true">

+   <!--<jmxConfigurator /> -->

+   <!--  specify the base path of the log directory --> 

+   <property name="logDir" value="/var/log/onap" />

+   <!--  specify the component name -->

+   <property name="componentName" value="policy" />

+   <!-- specify the sub component name -->

+   <property name="subComponentName" value="xacml-pdp-rest" />

+   <!-- The directories where logs are written --> 

+   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+   <!--  log file names -->

+   <property name="errorLogName" value="error" />

+   <property name="metricsLogName" value="metrics" />

+   <property name="auditLogName" value="audit" />

+   <property name="debugLogName" value="debug" />

+   <property name="queueSize" value="256" />

+   <property name="maxFileSize" value="50MB" />

+   <property name="maxHistory" value="30" />

+   <property name="totalSizeCap" value="10GB" />

+   <!-- Example evaluator filter applied against console appender -->

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

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

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

+   <!-- EELF Appenders -->

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

+   <!-- The EELFAppender is used to record events to the general application 

+    log -->

+   <!-- EELF Audit Appender. This appender is used to record audit engine 

+    related logging events. The audit logger and appender are specializations 

+    of the EELF application root logger and appender. This can be used to segregate 

+    Policy engine events from other components, or it can be eliminated to record 

+    these events as part of the application root log. -->

+   <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${auditLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFAudit" />

+   </appender>

+   <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${metricsLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

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

+        %msg%n"</pattern> -->

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFMetrics" />

+   </appender>

+   <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${errorLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

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

+         <level>INFO</level>

+      </filter>

+   </appender>

+   <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFError" />

+   </appender>

+   <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${debugLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFDebug" />

+      <includeCallerData>true</includeCallerData>

+   </appender>

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

+   <!--  EELF loggers -->

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

+   <logger name="com.att.eelf.audit" level="info" additivity="false">

+      <appender-ref ref="asyncEELFAudit" />

+   </logger>

+   <logger name="com.att.eelf.metrics" level="info" additivity="false">

+      <appender-ref ref="asyncEELFMetrics" />

+   </logger>

+   <logger name="com.att.eelf.error" level="info" additivity="false">

+      <appender-ref ref="asyncEELFError" />

+   </logger>

+   <logger name="com.att.eelf.debug" level="debug" additivity="false">

+      <appender-ref ref="asyncEELFDebug" />

+   </logger>

+   <root level="INFO">

+      <appender-ref ref="asyncEELFDebug" />

+   </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/portal/portal-be/logback.xml b/kubernetes/config/docker/init/src/config/log/portal/portal-be/logback.xml
new file mode 100644
index 0000000..26533ef
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/portal/portal-be/logback.xml
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="utf-8"?>

+<!--

+  ================================================================================

+  eCOMP Portal

+  ================================================================================

+  Copyright (C) 2017 AT&T Intellectual Property

+  ================================================================================

+  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.

+  ================================================================================

+  -->

+<!DOCTYPE xml>

+<configuration debug="true" scan="true" scanPeriod="3 seconds">

+    <!-- Log-back files for the ECOMP Portal "ecompportal" are created in directory 

+                ${catalina.base}/logs/ecompportal; e.g., apache-tomcat-8.0.35/logs/ecompportal/application.log -->

+    <!--<jmxConfigurator /> -->

+    <!-- specify the component name -->

+    <property name="componentName" value="portal"></property>

+    <property name="subComponentName" value="portalBE"></property>

+    <!-- specify the base path of the log directory -->

+    <property name="logDirPrefix" value="/var/log/onap"></property>

+    <!-- The directories where logs are written -->

+    <property name="logDirectory" value="${logDirPrefix}/${componentName}/${subComponentName}" />

+    <!-- Can easily relocate debug logs by modifying this path. -->

+    <property name="debugLogDirectory" value="${logDirPrefix}/${componentName}/${subComponentName}" />

+    <!-- log file names -->

+    <property name="generalLogName" value="application" />

+    <property name="errorLogName" value="error" />

+    <property name="metricsLogName" value="metrics" />

+    <property name="auditLogName" value="audit" />

+    <property name="debugLogName" value="debug" />

+    <!-- These loggers are not used in code (yet). <property name="securityLogName" 

+                value="security" /> <property name="policyLogName" value="policy" /> <property 

+                name="performanceLogName" value="performance" /> <property name="serverLogName" 

+                value="server" /> -->

+    <!-- ServerFQDN=Server,  -->

+    <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+    <property name="maxHistory" value="30" />

+    <property name="queueSize" value="256" />

+    <property name="maxFileSize" value="50MB" />

+    <property name="totalSizeCap" value="10GB" />

+    <!-- Example evaluator filter applied against console appender -->

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

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

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

+    <!-- EELF Appenders -->

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

+    <!-- The EELFAppender is used to record events to the general application 

+                log -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELF">

+        <file>${logDirectory}/${generalLogName}.log</file>

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

+            <!-- daily rollover -->

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+        <filter class="org.openecomp.portalapp.portal.utils.CustomLoggingFilter" />

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELF">

+        <queueSize>${queueSize}</queueSize>

+        <!-- Class name is part of caller data -->

+        <includeCallerData>true</includeCallerData>

+        <appender-ref ref="EELF" />

+    </appender>

+    <!-- EELF Security Appender. This appender is used to record security events 

+                to the security log file. Security events are separate from other loggers 

+                in EELF so that security log records can be captured and managed in a secure 

+                way separate from the other logs. This appender is set to never discard any 

+                events. -->

+    <!-- <appender name="EELFSecurity" class="ch.qos.logback.core.rolling.RollingFileAppender"> 

+                <file>${logDirectory}/${securityLogName}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 

+                <fileNamePattern>${logDirectory}/${securityLogName}.%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>${defaultPattern}</pattern> </encoder> 

+                </appender> <appender name="asyncEELFSecurity" class="ch.qos.logback.classic.AsyncAppender"> 

+                <queueSize>256</queueSize> <discardingThreshold>0</discardingThreshold> <appender-ref 

+                ref="EELFSecurity" /> </appender> -->

+    <!-- EELF Performance Appender. This appender is used to record performance 

+                records. -->

+    <!-- <appender name="EELFPerformance" class="ch.qos.logback.core.rolling.RollingFileAppender"> 

+                <file>${logDirectory}/${performanceLogName}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 

+                <fileNamePattern>${logDirectory}/${performanceLogName}.%i.log.zip </fileNamePattern> 

+                <minIndex>1</minIndex> <maxIndex>9</maxIndex> </rollingPolicy> <triggeringPolicy 

+                class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> <maxFileSize>5MB</maxFileSize> 

+                </triggeringPolicy> <encoder> <outputPatternAsHeader>true</outputPatternAsHeader> 

+                <pattern>${defaultPattern}</pattern> </encoder> </appender> <appender name="asyncEELFPerformance" 

+                class="ch.qos.logback.classic.AsyncAppender"> <queueSize>256</queueSize> 

+                <appender-ref ref="EELFPerformance" /> </appender> -->

+    <!-- EELF Server Appender. This appender is used to record Server related 

+                logging events. The Server logger and appender are specializations of the 

+                EELF application root logger and appender. This can be used to segregate 

+                Server events from other components, or it can be eliminated to record these 

+                events as part of the application root log. -->

+    <!-- <appender name="EELFServer" class="ch.qos.logback.core.rolling.RollingFileAppender"> 

+                <file>${logDirectory}/${serverLogName}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 

+                <fileNamePattern>${logDirectory}/${serverLogName}.%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>${defaultPattern}</pattern> </encoder> 

+                </appender> <appender name="asyncEELFServer" class="ch.qos.logback.classic.AsyncAppender"> 

+                <queueSize>256</queueSize> <appender-ref ref="EELFServer" /> </appender> -->

+    <!-- EELF Policy Appender. This appender is used to record Policy engine 

+                related logging events. The Policy logger and appender are specializations 

+                of the EELF application root logger and appender. This can be used to segregate 

+                Policy engine events from other components, or it can be eliminated to record 

+                these events as part of the application root log. -->

+    <!-- <appender name="EELFPolicy" class="ch.qos.logback.core.rolling.RollingFileAppender"> 

+                <file>${logDirectory}/${policyLogName}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 

+                <fileNamePattern>${logDirectory}/${policyLogName}.%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>${defaultPattern}</pattern> </encoder> 

+                </appender> <appender name="asyncEELFPolicy" class="ch.qos.logback.classic.AsyncAppender"> 

+                <queueSize>256</queueSize> <appender-ref ref="EELFPolicy" /> </appender> -->

+    <!-- EELF Audit Appender. This appender is used to record audit engine related 

+                logging events. The audit logger and appender are specializations of the 

+                EELF application root logger and appender. This can be used to segregate 

+                Policy engine events from other components, or it can be eliminated to record 

+                these events as part of the application root log. -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFAudit">

+        <file>${logDirectory}/${auditLogName}.log</file>

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

+            <!-- daily roll over -->

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFAudit">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="EELFAudit" />

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFMetrics">

+        <file>${logDirectory}/${metricsLogName}.log</file>

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

+            <!-- daily roll over -->

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFMetrics">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="EELFMetrics" />

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFError">

+        <file>${logDirectory}/${errorLogName}.log</file>

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

+            <!-- daily roll over -->

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFError">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="EELFError" />

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFDebug">

+        <file>${debugLogDirectory}/${debugLogName}.log</file>

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

+            <!-- daily roll over -->

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFDebug">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="EELFDebug" />

+        <includeCallerData>true</includeCallerData>

+    </appender>

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

+    <!-- EELF loggers -->

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

+    <logger additivity="false" level="info" name="com.att.eelf">

+        <appender-ref ref="asyncEELF" />

+    </logger>

+    <!-- <logger name="com.att.eelf.security" level="info" additivity="false"> 

+                <appender-ref ref="asyncEELFSecurity" /> </logger> <logger name="com.att.eelf.perf" 

+                level="info" additivity="false"> <appender-ref ref="asyncEELFPerformance" 

+                /> </logger> <logger name="com.att.eelf.server" level="info" additivity="false"> 

+                <appender-ref ref="asyncEELFServer" /> </logger> <logger name="com.att.eelf.policy" 

+                level="info" additivity="false"> <appender-ref ref="asyncEELFPolicy" /> </logger> -->

+    <logger additivity="false" level="info" name="com.att.eelf.audit">

+        <appender-ref ref="asyncEELFAudit" />

+    </logger>

+    <logger additivity="false" level="info" name="com.att.eelf.metrics">

+        <appender-ref ref="asyncEELFMetrics" />

+    </logger>

+    <logger additivity="false" level="info" name="com.att.eelf.error">

+        <appender-ref ref="asyncEELFError" />

+    </logger>

+    <logger additivity="false" level="debug" name="com.att.eelf.debug">

+        <appender-ref ref="asyncEELFDebug" />

+    </logger>

+    <root level="INFO">

+        <appender-ref ref="asyncEELF" />

+    </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/portal/portal-db/logback.xml b/kubernetes/config/docker/init/src/config/log/portal/portal-db/logback.xml
new file mode 100644
index 0000000..4990fac
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/portal/portal-db/logback.xml
@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="utf-8"?>

+<configuration debug="true" scan="true" scanPeriod="3 seconds">

+    <!--

+  Logback files for the ECOMP SDK Application "ecomp_app"

+  are created in directory ${catalina.base}/logs/ecomp_app;

+  e.g., apache-tomcat-8.0.35/logs/ecomp_app/application.log

+  -->

+    <!--<jmxConfigurator /> -->

+    <!--  specify the component name -->

+    <property name="componentName" value="portal"></property>

+    <property name="subComponentName" value="portalDB"></property>

+    <!--  specify the base path of the log directory -->

+    <property name="logDirPrefix" value="/var/log/onap"></property>

+    <!-- The directories where logs are written -->

+    <property name="logDirectory" value="${logDirPrefix}/${componentName}/${subComponentName}" />

+    <!-- Can easily relocate debug logs by modifying this path. -->

+    <property name="debugLogDirectory" value="${logDirPrefix}/${componentName}/${subComponentName}" />

+    <!--  log file names -->

+    <property name="generalLogName" value="application" />

+    <property name="errorLogName" value="error" />

+    <property name="metricsLogName" value="metrics" />

+    <property name="auditLogName" value="audit" />

+    <property name="debugLogName" value="debug" />

+    <!--

+  These loggers are not used in code (yet).

+  <property name="securityLogName" value="security" />

+  <property name="policyLogName" value="policy" />

+  <property name="performanceLogName" value="performance" />

+  <property name="serverLogName" value="server" />

+   -->

+    <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+    <property name="maxHistory" value="30" />

+    <property name="queueSize" value="256" />

+    <property name="maxFileSize" value="50MB" />

+    <property name="totalSizeCap" value="10GB" />

+    <!-- Example evaluator filter applied against console appender -->

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

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

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

+    <!-- EELF Appenders -->

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

+    <!-- The EELFAppender is used to record events to the general application

+    log -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELF">

+        <file>${logDirectory}/${generalLogName}.log</file>

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

+            <!-- daily rollover -->

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

+            <!-- keep 30 days' worth of history capped at ${totalSizeCap} total size -->

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+        <filter class="org.openecomp.fusionapp.util.CustomLoggingFilter" />

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELF">

+        <queueSize>${queueSize}</queueSize>

+        <!-- Class name is part of caller data -->

+        <includeCallerData>true</includeCallerData>

+        <appender-ref ref="EELF" />

+    </appender>

+    <!-- EELF Security Appender. This appender is used to record security events

+    to the security log file. Security events are separate from other loggers

+    in EELF so that security log records can be captured and managed in a secure

+    way separate from the other logs. This appender is set to never discard any

+    events. -->

+    <!--

+  <appender name="EELFSecurity"

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

+    <file>${logDirectory}/${securityLogName}.log</file>

+    <rollingPolicy

+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">

+      <fileNamePattern>${logDirectory}/${securityLogName}.%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>${defaultPattern}</pattern>

+    </encoder>

+  </appender>

+

+  <appender name="asyncEELFSecurity" class="ch.qos.logback.classic.AsyncAppender">

+    <queueSize>256</queueSize>

+    <discardingThreshold>0</discardingThreshold>

+    <appender-ref ref="EELFSecurity" />

+  </appender>

+   -->

+    <!-- EELF Performance Appender. This appender is used to record performance

+    records. -->

+    <!--

+  <appender name="EELFPerformance"

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

+    <file>${logDirectory}/${performanceLogName}.log</file>

+    <rollingPolicy

+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">

+      <fileNamePattern>${logDirectory}/${performanceLogName}.%i.log.zip

+      </fileNamePattern>

+      <minIndex>1</minIndex>

+      <maxIndex>9</maxIndex>

+    </rollingPolicy>

+    <triggeringPolicy

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

+      <maxFileSize>5MB</maxFileSize>

+    </triggeringPolicy>

+    <encoder>

+      <outputPatternAsHeader>true</outputPatternAsHeader>

+      <pattern>${defaultPattern}</pattern>

+    </encoder>

+  </appender>

+  <appender name="asyncEELFPerformance" class="ch.qos.logback.classic.AsyncAppender">

+    <queueSize>256</queueSize>

+    <appender-ref ref="EELFPerformance" />

+  </appender>

+  -->

+    <!-- EELF Server Appender. This appender is used to record Server related

+    logging events. The Server logger and appender are specializations of the

+    EELF application root logger and appender. This can be used to segregate Server

+    events from other components, or it can be eliminated to record these events

+    as part of the application root log. -->

+    <!--

+  <appender name="EELFServer"

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

+    <file>${logDirectory}/${serverLogName}.log</file>

+    <rollingPolicy

+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">

+      <fileNamePattern>${logDirectory}/${serverLogName}.%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>${defaultPattern}</pattern>

+    </encoder>

+  </appender>

+  <appender name="asyncEELFServer" class="ch.qos.logback.classic.AsyncAppender">

+    <queueSize>256</queueSize>

+    <appender-ref ref="EELFServer" />

+  </appender>

+   -->

+    <!-- EELF Policy Appender. This appender is used to record Policy engine

+    related logging events. The Policy logger and appender are specializations

+    of the EELF application root logger and appender. This can be used to segregate

+    Policy engine events from other components, or it can be eliminated to record

+    these events as part of the application root log. -->

+    <!--

+  <appender name="EELFPolicy"

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

+    <file>${logDirectory}/${policyLogName}.log</file>

+    <rollingPolicy

+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">

+      <fileNamePattern>${logDirectory}/${policyLogName}.%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>${defaultPattern}</pattern>

+    </encoder>

+  </appender>

+  <appender name="asyncEELFPolicy" class="ch.qos.logback.classic.AsyncAppender">

+    <queueSize>256</queueSize>

+    <appender-ref ref="EELFPolicy" />

+  </appender>

+  -->

+    <!-- EELF Audit Appender. This appender is used to record audit engine

+    related logging events. The audit logger and appender are specializations

+    of the EELF application root logger and appender. This can be used to segregate

+    Policy engine events from other components, or it can be eliminated to record

+    these events as part of the application root log. -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFAudit">

+        <file>${logDirectory}/${auditLogName}.log</file>

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

+            <!-- daily rollover -->

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

+            <!-- keep 30 days' worth of history capped at ${totalSizeCap} total size -->

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFAudit">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="EELFAudit" />

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFMetrics">

+        <file>${logDirectory}/${metricsLogName}.log</file>

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

+            <!-- daily rollover -->

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

+            <!-- keep 30 days' worth of history capped at ${totalSizeCap} total size -->

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFMetrics">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="EELFMetrics" />

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFError">

+        <file>${logDirectory}/${errorLogName}.log</file>

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

+            <!-- daily rollover -->

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

+            <!-- keep 30 days' worth of history capped at ${totalSizeCap} total size -->

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFError">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="EELFError" />

+    </appender>

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="EELFDebug">

+        <file>${debugLogDirectory}/${debugLogName}.log</file>

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

+            <!-- daily rollover -->

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

+            <!-- keep 30 days' worth of history capped at ${totalSizeCap} total size -->

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="asyncEELFDebug">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="EELFDebug" />

+    </appender>

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

+    <!--  EELF loggers -->

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

+    <logger additivity="false" level="debug" name="com.att.eelf">

+        <appender-ref ref="asyncEELF" />

+    </logger>

+    <!--

+  <logger name="com.att.eelf.security" level="info" additivity="false">

+    <appender-ref ref="asyncEELFSecurity" />

+  </logger>

+  <logger name="com.att.eelf.perf" level="info" additivity="false">

+    <appender-ref ref="asyncEELFPerformance" />

+  </logger>

+  <logger name="com.att.eelf.server" level="info" additivity="false">

+   <appender-ref ref="asyncEELFServer" />

+  </logger>

+  <logger name="com.att.eelf.policy" level="info" additivity="false">

+    <appender-ref ref="asyncEELFPolicy" />

+  </logger>

+  -->

+    <logger additivity="false" level="info" name="com.att.eelf.audit">

+        <appender-ref ref="asyncEELFAudit" />

+    </logger>

+    <logger additivity="false" level="info" name="com.att.eelf.metrics">

+        <appender-ref ref="asyncEELFMetrics" />

+    </logger>

+    <logger additivity="false" level="info" name="com.att.eelf.error">

+        <appender-ref ref="asyncEELFError" />

+    </logger>

+    <logger additivity="false" level="debug" name="com.att.eelf.debug">

+        <appender-ref ref="asyncEELFDebug" />

+    </logger>

+    <root level="DEBUG">

+        <appender-ref ref="asyncEELF" />

+    </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/sdc/be/logback.xml b/kubernetes/config/docker/init/src/config/log/sdc/be/logback.xml
new file mode 100644
index 0000000..4d508e3
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/sdc/be/logback.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>

+<configuration scan="true" scanPeriod="3 seconds">

+    <property name="logDir" value="/var/log/onap" />

+    <property name="componentName" scope="system" value="sdc"></property>

+    <property name="subComponentName" scope="system" value="sdc-be"></property>

+    <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+    <property file="${config.home}/catalog-be/configuration.yaml" />

+    <property name="enable-all-log" scope="context" value="false" />

+    <!--  log file names -->

+    <property name="errorLogName" value="error" />

+    <property name="metricsLogName" value="metrics" />

+    <property name="auditLogName" value="audit" />

+    <property name="debugLogName" value="debug" />

+    <property name="transactionLogName" value="transaction" />

+    <property name="allLogName" value="all" />

+    <property name="queueSize" value="256" />

+    <property name="maxFileSize" value="50MB" />

+    <property name="maxHistory" value="30" />

+    <property name="totalSizeCap" value="10GB" />

+    <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+    <!-- All log -->

+    <if condition='property("enable-all-log").equalsIgnoreCase("true")'>

+        <then>

+            <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ALL_ROLLING">

+                <file>${logDirectory}/${allLogName}.log</file>

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

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

+                    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                        <maxFileSize>${maxFileSize}</maxFileSize>

+                    </timeBasedFileNamingAndTriggeringPolicy>

+                    <maxHistory>${maxHistory}</maxHistory>

+                    <totalSizeCap>${totalSizeCap}</totalSizeCap>

+                </rollingPolicy>

+                <encoder>

+                    <pattern>${pattern}</pattern>

+                </encoder>

+            </appender>

+            <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ALL">

+                <appender-ref ref="ALL_ROLLING" />

+            </appender>

+        </then>

+    </if>

+    <!-- Error log -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR_ROLLING">

+        <file>${logDirectory}/${errorLogName}.log</file>

+        <!-- Audit messages filter - deny audit messages -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">

+                <marker>AUDIT_MARKER</marker>

+            </evaluator>

+            <onMismatch>NEUTRAL</onMismatch>

+            <onMatch>DENY</onMatch>

+        </filter>

+        <!-- Transaction messages filter - deny Transaction messages -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">

+                <marker>TRANSACTION_MARKER</marker>

+            </evaluator>

+            <onMismatch>NEUTRAL</onMismatch>

+            <onMatch>DENY</onMatch>

+        </filter>

+        <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->

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

+            <level>INFO</level>

+        </filter>

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

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <!-- Debug log -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG_ROLLING">

+        <file>${logDirectory}/${debugLogName}.log</file>

+        <!-- No need to deny audit messages - they are INFO only, will be denied 

+                        anyway -->

+        <!-- Transaction messages filter - deny Transaction messages, there are 

+                        some DEBUG level messages among them -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">

+                <marker>TRANSACTION_MARKER</marker>

+            </evaluator>

+            <onMismatch>NEUTRAL</onMismatch>

+            <onMatch>DENY</onMatch>

+        </filter>

+        <!-- accept DEBUG and TRACE level -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">

+                <expression>e.level.toInt() &lt;= DEBUG.toInt()</expression>

+            </evaluator>

+            <OnMismatch>DENY</OnMismatch>

+            <OnMatch>NEUTRAL</OnMatch>

+        </filter>

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

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <!-- Audit log -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT_ROLLING">

+        <file>${logDirectory}/${auditLogName}.log</file>

+        <!-- Audit messages filter - accept audit messages -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">

+                <marker>AUDIT_MARKER</marker>

+            </evaluator>

+            <onMismatch>DENY</onMismatch>

+            <onMatch>ACCEPT</onMatch>

+        </filter>

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

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <!-- SdncTransaction log -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="TRANSACTION_ROLLING">

+        <file>${logDirectory}/${transactionLogName}.log</file>

+        <!-- Transaction messages filter - accept audit messages -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">

+                <marker>TRANSACTION_MARKER</marker>

+            </evaluator>

+            <onMismatch>DENY</onMismatch>

+            <onMatch>ACCEPT</onMatch>

+        </filter>

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

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <!-- Asynchronicity Configurations -->

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_DEBUG">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="DEBUG_ROLLING" />

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_TRANSACTION">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="TRANSACTION_ROLLING" />

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ERROR">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="ERROR_ROLLING" />

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_AUDIT">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="AUDIT_ROLLING" />

+    </appender>

+    <root level="INFO">

+        <appender-ref ref="ASYNC_ERROR" />

+        <appender-ref ref="ASYNC_DEBUG" />

+        <appender-ref ref="ASYNC_AUDIT" />

+        <appender-ref ref="ASYNC_TRANSACTION" />

+        <if condition='property("enable-all-log").equalsIgnoreCase("true")'>

+            <then>

+                <appender-ref ref="ALL_ROLLING" />

+            </then>

+        </if>

+    </root>

+    <logger level="INFO" name="org.openecomp.sdc" />

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/sdc/fe/logback.xml b/kubernetes/config/docker/init/src/config/log/sdc/fe/logback.xml
new file mode 100644
index 0000000..a8e9ed7
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/sdc/fe/logback.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="utf-8"?>

+<configuration scan="true" scanPeriod="3 seconds">

+    <property name="logDir" value="/var/log/onap" />

+    <property name="componentName" scope="system" value="sdc"></property>

+    <property name="subComponentName" scope="system" value="sdc-fe"></property>

+    <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />

+    <property file="${config.home}/catalog-fe/configuration.yaml" />

+    <property name="enable-all-log" scope="context" value="false" />

+    <!--  log file names -->

+    <property name="errorLogName" value="error" />

+    <property name="metricsLogName" value="metrics" />

+    <property name="auditLogName" value="audit" />

+    <property name="debugLogName" value="debug" />

+    <property name="transactionLogName" value="transaction" />

+    <property name="allLogName" value="all" />

+    <property name="queueSize" value="256" />

+    <property name="maxFileSize" value="50MB" />

+    <property name="maxHistory" value="30" />

+    <property name="totalSizeCap" value="10GB" />

+    <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+    <!-- All log -->

+    <if condition='property("enable-all-log").equalsIgnoreCase("true")'>

+        <then>

+            <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ALL_ROLLING">

+                <file>${logDirectory}/${allLogName}.log</file>

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

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

+                    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                        <maxFileSize>${maxFileSize}</maxFileSize>

+                    </timeBasedFileNamingAndTriggeringPolicy>

+                    <maxHistory>${maxHistory}</maxHistory>

+                    <totalSizeCap>${totalSizeCap}</totalSizeCap>

+                </rollingPolicy>

+                <encoder>

+                    <pattern>${pattern}</pattern>

+                </encoder>

+            </appender>

+            <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ALL">

+                <appender-ref ref="ALL_ROLLING" />

+            </appender>

+        </then>

+    </if>

+    <!-- Error log -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR_ROLLING">

+        <file>${logDirectory}/${errorLogName}.log</file>

+        <!-- Audit messages filter - deny audit messages -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">

+                <marker>AUDIT_MARKER</marker>

+            </evaluator>

+            <onMismatch>NEUTRAL</onMismatch>

+            <onMatch>DENY</onMatch>

+        </filter>

+        <!-- Transaction messages filter - deny Transaction messages -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">

+                <marker>TRANSACTION_MARKER</marker>

+            </evaluator>

+            <onMismatch>NEUTRAL</onMismatch>

+            <onMatch>DENY</onMatch>

+        </filter>

+        <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->

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

+            <level>INFO</level>

+        </filter>

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

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <!-- Debug log -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG_ROLLING">

+        <file>${logDirectory}/${debugLogName}.log</file>

+        <!-- No need to deny audit messages - they are INFO only, will be denied 

+                        anyway -->

+        <!-- Transaction messages filter - deny Transaction messages, there are 

+                        some DEBUG level messages among them -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">

+                <marker>TRANSACTION_MARKER</marker>

+            </evaluator>

+            <onMismatch>NEUTRAL</onMismatch>

+            <onMatch>DENY</onMatch>

+        </filter>

+        <!-- accept DEBUG and TRACE level -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">

+                <expression>e.level.toInt() &lt;= DEBUG.toInt()</expression>

+            </evaluator>

+            <OnMismatch>DENY</OnMismatch>

+            <OnMatch>NEUTRAL</OnMatch>

+        </filter>

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

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <!-- Audit log -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT_ROLLING">

+        <file>${logDirectory}/${auditLogName}.log</file>

+        <!-- Audit messages filter - accept audit messages -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">

+                <marker>AUDIT_MARKER</marker>

+            </evaluator>

+            <onMismatch>DENY</onMismatch>

+            <onMatch>ACCEPT</onMatch>

+        </filter>

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

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <!-- SdncTransaction log -->

+    <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="TRANSACTION_ROLLING">

+        <file>${logDirectory}/${transactionLogName}.log</file>

+        <!-- Transaction messages filter - accept audit messages -->

+        <filter class="ch.qos.logback.core.filter.EvaluatorFilter">

+            <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">

+                <marker>TRANSACTION_MARKER</marker>

+            </evaluator>

+            <onMismatch>DENY</onMismatch>

+            <onMatch>ACCEPT</onMatch>

+        </filter>

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

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

+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+                <maxFileSize>${maxFileSize}</maxFileSize>

+            </timeBasedFileNamingAndTriggeringPolicy>

+            <maxHistory>${maxHistory}</maxHistory>

+            <totalSizeCap>${totalSizeCap}</totalSizeCap>

+        </rollingPolicy>

+        <encoder>

+            <pattern>${pattern}</pattern>

+        </encoder>

+    </appender>

+    <!-- Asynchronicity Configurations -->

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_DEBUG">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="DEBUG_ROLLING" />

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_TRANSACTION">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="TRANSACTION_ROLLING" />

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ERROR">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="ERROR_ROLLING" />

+    </appender>

+    <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_AUDIT">

+        <queueSize>${queueSize}</queueSize>

+        <appender-ref ref="AUDIT_ROLLING" />

+    </appender>

+    <root level="INFO">

+        <appender-ref ref="ASYNC_ERROR" />

+        <appender-ref ref="ASYNC_DEBUG" />

+        <appender-ref ref="ASYNC_AUDIT" />

+        <appender-ref ref="ASYNC_TRANSACTION" />

+        <if condition='property("enable-all-log").equalsIgnoreCase("true")'>

+            <then>

+                <appender-ref ref="ALL_ROLLING" />

+            </then>

+        </if>

+    </root>

+    <logger level="INFO" name="org.openecomp.sdc" />

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/config/docker/init/src/config/log/sdnc/org.ops4j.pax.logging.cfg b/kubernetes/config/docker/init/src/config/log/sdnc/org.ops4j.pax.logging.cfg
new file mode 100644
index 0000000..50818a3
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/sdnc/org.ops4j.pax.logging.cfg
@@ -0,0 +1,57 @@
+################################################################################

+#

+#    Licensed to the Apache Software Foundation (ASF) under one or more

+#    contributor license agreements.  See the NOTICE file distributed with

+#    this work for additional information regarding copyright ownership.

+#    The ASF licenses this file to You 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.

+#

+################################################################################

+

+# Root logger

+log4j.rootLogger=INFO, async, osgi:*

+log4j.throwableRenderer=org.apache.log4j.OsgiThrowableRenderer

+

+# Log Directory

+logDir=/var/log/onap

+componentName=sdnc

+logDirectory=${logDir}/${componentName}

+maxFileSize=100MB

+maxBackupIndex=20

+

+# CONSOLE appender not used by default

+log4j.appender.stdout=org.apache.log4j.ConsoleAppender

+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

+log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd'T'HH:mm:ss.SSS}\t%-16.16t\t%-5.5p\t%c{36}\t%X{bundle.id} - %X{bundle.name} - %X{bundle.version}\t%m%n

+

+# Async appender forwarding to file appender 

+log4j.appender.async=org.apache.log4j.AsyncAppender

+log4j.appender.async.appenders=out

+

+# File appender

+log4j.appender.out=org.apache.log4j.RollingFileAppender

+log4j.appender.out.layout=org.apache.log4j.xml.XMLLayout

+log4j.appender.out.layout.Properties=true

+log4j.appender.out.file=${logDirectory}/karaf.log

+log4j.appender.out.append=true

+log4j.appender.out.maxFileSize=${maxFileSize}

+log4j.appender.out.maxBackupIndex=${maxBackupIndex}

+

+# Sift appender

+log4j.appender.sift=org.apache.log4j.sift.MDCSiftingAppender

+log4j.appender.sift.key=bundle.name

+log4j.appender.sift.default=karaf

+log4j.appender.sift.appender=org.apache.log4j.RollingFileAppender

+log4j.appender.sift.appender.layout=org.apache.log4j.xml.XMLLayout

+log4j.appender.sift.appender.layout.Properties=true

+log4j.appender.sift.appender.file=${logDirectory}/$\\{bundle.name\\}.log

+log4j.appender.sift.appender.append=true

diff --git a/kubernetes/config/docker/init/src/config/log/vid/logback.xml b/kubernetes/config/docker/init/src/config/log/vid/logback.xml
new file mode 100644
index 0000000..d3177f0
--- /dev/null
+++ b/kubernetes/config/docker/init/src/config/log/vid/logback.xml
@@ -0,0 +1,299 @@
+<?xml version="1.0" encoding="UTF-8"?>

+<!--

+  ================================================================================

+  eCOMP Portal SDK

+  ================================================================================

+  Copyright (C) 2017 AT&amp;T Intellectual Property

+  ================================================================================

+  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.

+  ================================================================================

+  -->

+<configuration scan="true" scanPeriod="3 seconds" debug="true">

+   <!--  specify the base path of the log directory -->

+   <property name="logDir" value="/var/log/onap" />

+   <!--  specify the component name -->

+   <property name="componentName" value="vid" />

+   <!-- The directory where logs are written -->

+   <property name="logDirectory" value="${logDir}/${componentName}" />

+   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />

+   <!--  log file names -->

+   <property name="generalLogName" value="application" />

+   <property name="errorLogName" value="error" />

+   <property name="metricsLogName" value="metrics" />

+   <property name="auditLogName" value="audit" />

+   <property name="debugLogName" value="debug" />

+   <!--  other constants -->

+   <property name="queueSize" value="256" />

+   <property name="maxFileSize" value="50MB" />

+   <property name="maxHistory" value="30" />

+   <property name="totalSizeCap" value="10GB" />

+   <!-- Example evaluator filter applied against console appender -->

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

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

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

+   <!-- EELF Appenders -->

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

+   <!-- The EELFAppender is used to record events to the general application 

+    log -->

+   <appender name="EELF" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${generalLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+      <filter class="org.openecomp.portalapp.util.CustomLoggingFilter" />

+   </appender>

+   <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <includeCallerData>true</includeCallerData>

+      <appender-ref ref="EELF" />

+   </appender>

+   <!-- EELF Security Appender. This appender is used to record security events 

+    to the security log file. Security events are separate from other loggers 

+    in EELF so that security log records can be captured and managed in a secure 

+    way separate from the other logs. This appender is set to never discard any 

+    events. -->

+   <!--     

+  <appender name="EELFSecurity"

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

+    <file>${logDirectory}/${securityLogName}.log</file>

+    <rollingPolicy

+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">

+      <fileNamePattern>${logDirectory}/${securityLogName}.%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>${defaultPattern}</pattern>

+    </encoder>

+  </appender>

+  

+  <appender name="asyncEELFSecurity" class="ch.qos.logback.classic.AsyncAppender">

+    <queueSize>256</queueSize>

+    <discardingThreshold>0</discardingThreshold>

+    <appender-ref ref="EELFSecurity" />

+  </appender>

+   -->

+   <!-- EELF Performance Appender. This appender is used to record performance 

+    records. -->

+   <!--

+  <appender name="EELFPerformance"

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

+    <file>${logDirectory}/${performanceLogName}.log</file>

+    <rollingPolicy

+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">

+      <fileNamePattern>${logDirectory}/${performanceLogName}.%i.log.zip

+      </fileNamePattern>

+      <minIndex>1</minIndex>

+      <maxIndex>9</maxIndex>

+    </rollingPolicy>

+    <triggeringPolicy

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

+      <maxFileSize>5MB</maxFileSize>

+    </triggeringPolicy>

+    <encoder>

+      <outputPatternAsHeader>true</outputPatternAsHeader>

+      <pattern>${defaultPattern}</pattern>

+    </encoder>

+  </appender>

+  <appender name="asyncEELFPerformance" class="ch.qos.logback.classic.AsyncAppender">

+    <queueSize>256</queueSize>

+    <appender-ref ref="EELFPerformance" />

+  </appender>

+  -->

+   <!-- EELF Server Appender. This appender is used to record Server related 

+    logging events. The Server logger and appender are specializations of the 

+    EELF application root logger and appender. This can be used to segregate Server 

+    events from other components, or it can be eliminated to record these events 

+    as part of the application root log. -->

+   <!--

+  <appender name="EELFServer"

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

+    <file>${logDirectory}/${serverLogName}.log</file>

+    <rollingPolicy

+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">

+      <fileNamePattern>${logDirectory}/${serverLogName}.%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>${defaultPattern}</pattern>

+    </encoder>

+  </appender>

+  <appender name="asyncEELFServer" class="ch.qos.logback.classic.AsyncAppender">

+    <queueSize>256</queueSize>

+    <appender-ref ref="EELFServer" />

+  </appender>

+   -->

+   <!-- EELF Policy Appender. This appender is used to record Policy engine 

+    related logging events. The Policy logger and appender are specializations 

+    of the EELF application root logger and appender. This can be used to segregate 

+    Policy engine events from other components, or it can be eliminated to record 

+    these events as part of the application root log. -->

+   <!--

+  <appender name="EELFPolicy"

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

+    <file>${logDirectory}/${policyLogName}.log</file>

+    <rollingPolicy

+      class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">

+      <fileNamePattern>${logDirectory}/${policyLogName}.%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>${defaultPattern}</pattern>

+    </encoder>

+  </appender>

+  <appender name="asyncEELFPolicy" class="ch.qos.logback.classic.AsyncAppender">

+    <queueSize>256</queueSize>

+    <appender-ref ref="EELFPolicy" />

+  </appender>

+  -->

+   <!-- EELF Audit Appender. This appender is used to record audit engine 

+    related logging events. The audit logger and appender are specializations 

+    of the EELF application root logger and appender. This can be used to segregate 

+    Policy engine events from other components, or it can be eliminated to record 

+    these events as part of the application root log. -->

+   <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${auditLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFAudit" />

+   </appender>

+   <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${metricsLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFMetrics" />

+   </appender>

+   <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${errorLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFError" />

+   </appender>

+   <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">

+      <file>${logDirectory}/${debugLogName}.log</file>

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

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

+         <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">

+            <maxFileSize>${maxFileSize}</maxFileSize>

+         </timeBasedFileNamingAndTriggeringPolicy>

+         <maxHistory>${maxHistory}</maxHistory>

+         <totalSizeCap>${totalSizeCap}</totalSizeCap>

+      </rollingPolicy>

+      <encoder>

+         <pattern>${pattern}</pattern>

+      </encoder>

+   </appender>

+   <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">

+      <queueSize>${queueSize}</queueSize>

+      <appender-ref ref="EELFDebug" />

+   </appender>

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

+   <!--  EELF loggers -->

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

+   <logger name="com.att.eelf" level="debug" additivity="false">

+      <appender-ref ref="asyncEELF" />

+   </logger>

+   <!--

+  <logger name="com.att.eelf.security" level="info" additivity="false">

+    <appender-ref ref="asyncEELFSecurity" />

+  </logger>

+  <logger name="com.att.eelf.perf" level="info" additivity="false">

+    <appender-ref ref="asyncEELFPerformance" />

+  </logger>

+  <logger name="com.att.eelf.server" level="info" additivity="false">

+    <appender-ref ref="asyncEELFServer" />

+  </logger>

+  <logger name="com.att.eelf.policy" level="info" additivity="false">

+    <appender-ref ref="asyncEELFPolicy" />

+  </logger>

+  -->

+   <logger name="com.att.eelf.audit" level="info" additivity="false">

+      <appender-ref ref="asyncEELFAudit" />

+   </logger>

+   <logger name="com.att.eelf.metrics" level="info" additivity="false">

+      <appender-ref ref="asyncEELFMetrics" />

+   </logger>

+   <logger name="com.att.eelf.error" level="info" additivity="false">

+      <appender-ref ref="asyncEELFError" />

+   </logger>

+   <logger name="com.att.eelf.debug" level="debug" additivity="false">

+      <appender-ref ref="asyncEELFDebug" />

+   </logger>

+   <root level="INFO">

+      <appender-ref ref="asyncEELF" />

+   </root>

+</configuration>
\ No newline at end of file
diff --git a/kubernetes/log/Chart.yaml b/kubernetes/log/Chart.yaml
new file mode 100644
index 0000000..36d0299
--- /dev/null
+++ b/kubernetes/log/Chart.yaml
@@ -0,0 +1,4 @@
+apiVersion: v1
+description: A Helm chart for Kubernetes
+name: log
+version: 0.1.0
diff --git a/kubernetes/log/resources/elasticsearch/conf/elasticsearch.yml b/kubernetes/log/resources/elasticsearch/conf/elasticsearch.yml
new file mode 100644
index 0000000..de92a58
--- /dev/null
+++ b/kubernetes/log/resources/elasticsearch/conf/elasticsearch.yml
@@ -0,0 +1,140 @@
+# ======================== Elasticsearch Configuration =========================
+#
+# NOTE: Elasticsearch comes with reasonable defaults for most settings.
+#       Before you set out to tweak and tune the configuration, make sure you
+#       understand what are you trying to accomplish and the consequences.
+#
+# The primary way of configuring a node is via this file. This template lists
+# the most important settings you may want to configure for a production cluster.
+#
+# Please consult the documentation for further information on configuration options:
+# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
+#
+# ---------------------------------- Cluster -----------------------------------
+#
+# Name of the Elasticsearch cluster.
+# A node can only join a cluster when it shares its cluster.name with all the other nodes in the cluster. 
+# The default name is elasticsearch, but you should change it to an appropriate name which describes the 
+# purpose of the cluster. 
+#
+cluster.name: "onap-log" 
+#
+# The port that other nodes in the cluster should use when communicating with this node. 
+# Required for Elasticsearch's nodes running on different cluster nodes.
+# More : https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-transport.html
+transport.publish_port:$transport.publish_port
+#
+# The host address to publish for nodes in the cluster to connect to.
+# Required for Elasticsearch's nodes running on different cluster nodes.
+# More : https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-transport.html
+transport.publish_host:$transport.publish_host
+#
+# ------------------------------------ Node ------------------------------------
+#
+# It is better to provide different meaningfull names fot different elastic nodes.
+# By default, Elasticsearch will take the 7 first character of the randomly generated uuid used as the node id. 
+# Note that the node id is persisted and does not change when a node restarts
+#
+#node.name: $node.name
+#
+# Add custom attributes to the node:
+#
+#node.attr.rack: r1
+#
+# ----------------------------------- Paths ------------------------------------
+#
+# The location of the data files of each index / shard allocated on the node. Can hold multiple locations separated by coma.
+# In production, we should not keep this default to "/elasticsearch/data", as on upgrading Elasticsearch, directory structure 
+# may change & can deal to data loss.
+path.data: /usr/share/elasticsearch/data
+#
+# Elasticsearch's log files location. In production, we should not keep this default to "/elasticsearch/logs", 
+# as on upgrading Elasticsearch, directory structure may change.
+path.logs: /usr/share/elasticsearch/logs
+#
+# ----------------------------------- Memory -----------------------------------
+#
+# It is vitally important to the health of your node that none of the JVM is ever swapped out to disk. 
+# Lock the memory on startup.
+#
+bootstrap.memory_lock: true
+#
+# Make sure that the heap size is set to about half the memory available
+# on the system and that the owner of the process is allowed to use this
+# limit.
+#
+# Elasticsearch performs poorly when the system is swapping the memory.
+#
+# ---------------------------------- Network -----------------------------------
+#
+# Set the bind address to a specific IP (IPv4 or IPv6):
+# In order to communicate and to form a cluster with nodes on other servers, your node will need to bind to a 
+# non-loopback address. 
+network.host: 0.0.0.0
+#
+# Set a custom port for HTTP: If required, default is 9200-9300
+#
+#http.port: $http.port
+#
+# For more information, consult the network module documentation.
+#
+# --------------------------------- Discovery ----------------------------------
+#
+# Pass an initial list of hosts to perform discovery when new node is started:
+# To form a cluster with nodes on other servers, you have to provide a seed list of other nodes in the cluster 
+# that are likely to be live and contactable. 
+# By default, Elasticsearch will bind to the available loopback addresses and will scan ports 9300 to 9305 to try 
+# to connect to other nodes running on the same server.
+#
+discovery.zen.ping.unicast.hosts: ["elasticsearch.onap-log"]
+#$discovery.zen.ping.unicast.hosts
+#
+# This setting tells Elasticsearch to not elect a master unless there are enough master-eligible nodes  
+# available. Only then will an election take place.
+# Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
+discovery.zen.minimum_master_nodes: 1 
+#
+# For more information, consult the zen discovery module documentation.
+#
+# ---------------------------------- Gateway -----------------------------------
+#
+# Block initial recovery after a full cluster restart until N nodes are started:
+#
+#gateway.recover_after_nodes: 3
+#
+# For more information, consult the gateway module documentation.
+#
+# ---------------------------------- Various -----------------------------------
+#
+# Require explicit names when deleting indices:
+#
+#action.destructive_requires_name: true
+# Set a custom port for HTTP: If required, default is 9200-9300
+# This is used for REST APIs
+http.port: 9200
+# Port to bind for communication between nodes. Accepts a single value or a range. 
+# If a range is specified, the node will bind to the first available port in the range.
+# Defaults to 9300-9400.
+# More info: 
+transport.tcp.port: 9300
+
+xpack.graph.enabled: false
+#Set to false to disable X-Pack graph features.
+
+xpack.ml.enabled: false
+#Set to false to disable X-Pack machine learning features.
+
+xpack.monitoring.enabled: false
+#Set to false to disable X-Pack monitoring features.
+
+xpack.reporting.enabled: false
+#Set to false to disable X-Pack reporting features.
+
+xpack.security.enabled: false
+#Set to false to disable X-Pack security features.
+
+xpack.watcher.enabled: false
+#Set to false to disable Watcher.
+
+index.number_of_replicas: 0
+
diff --git a/kubernetes/log/resources/kibana/conf/kibana.yml b/kubernetes/log/resources/kibana/conf/kibana.yml
new file mode 100644
index 0000000..0f72daa
--- /dev/null
+++ b/kubernetes/log/resources/kibana/conf/kibana.yml
@@ -0,0 +1,116 @@
+xpack.graph.enabled: false
+#Set to false to disable X-Pack graph features.
+xpack.ml.enabled: false
+#Set to false to disable X-Pack machine learning features.
+xpack.monitoring.enabled: false
+#Set to false to disable X-Pack monitoring features.
+xpack.reporting.enabled: false
+#Set to false to disable X-Pack reporting features.
+xpack.security.enabled: false
+#Set to false to disable X-Pack security features.
+xpack.watcher.enabled: false
+#Set to false to disable Watcher.
+# Kibana is served by a back end server. This setting specifies the port to use.
+server.port: 5601
+
+# Specifies the address to which the Kibana server will bind. IP addresses and host names are both valid values.
+# The default is 'localhost', which usually means remote machines will not be able to connect.
+# To allow connections from remote users, set this parameter to a non-loopback address.
+server.host: "0"
+
+# Enables you to specify a path to mount Kibana at if you are running behind a proxy. This only affects
+# the URLs generated by Kibana, your proxy is expected to remove the basePath value before forwarding requests
+# to Kibana. This setting cannot end in a slash.
+#server.basePath: ""
+
+# The maximum payload size in bytes for incoming server requests.
+#server.maxPayloadBytes: 1048576
+
+# The Kibana server's name.  This is used for display purposes.
+server.name: "Kibana"
+
+# The URL of the Elasticsearch instance to use for all your queries.
+elasticsearch.url: "http://elasticsearch.onap-log:9200"
+#elasticsearch-service.onap-log:9200"
+#elasticsearch.url: "http://10.247.47.3:9200"
+# When this setting's value is true Kibana uses the hostname specified in the server.host
+# setting. When the value of this setting is false, Kibana uses the hostname of the host
+# that connects to this Kibana instance.
+#elasticsearch.preserveHost: true
+
+# Kibana uses an index in Elasticsearch to store saved searches, visualizations and
+# dashboards. Kibana creates a new index if the index doesn't already exist.
+#kibana.index: ".kibana"
+
+# The default application to load.
+#kibana.defaultAppId: "discover"
+
+# If your Elasticsearch is protected with basic authentication, these settings provide
+# the username and password that the Kibana server uses to perform maintenance on the Kibana
+# index at startup. Your Kibana users still need to authenticate with Elasticsearch, which
+# is proxied through the Kibana server.
+elasticsearch.username: "elastic"
+elasticsearch.password: "changeme"
+# Enables SSL and paths to the PEM-format SSL certificate and SSL key files, respectively.
+# These settings enable SSL for outgoing requests from the Kibana server to the browser.
+#server.ssl.enabled: $server_ssl_enabled
+#server.ssl.certificate: $server_ssl_certificate
+#server.ssl.key: $server_ssl_key
+
+# Optional settings that provide the paths to the PEM-format SSL certificate and key files.
+# These files validate that your Elasticsearch backend uses the same key files.
+#elasticsearch.ssl.certificate: $elasticsearch_ssl_certificate
+#elasticsearch.ssl.key: $elasticsearch_ssl_key
+
+# Optional setting that enables you to specify a path to the PEM file for the certificate
+# authority for your Elasticsearch instance.
+#elasticsearch.ssl.certificateAuthorities: $elasticsearch_ssl_certificateAuthorities
+
+# To disregard the validity of SSL certificates, change this setting's value to 'none'.
+#elasticsearch.ssl.verificationMode: $elasticsearch_ssl_verificationMode
+
+# Time in milliseconds to wait for Elasticsearch to respond to pings. Defaults to the value of
+# the elasticsearch.requestTimeout setting.
+#elasticsearch.pingTimeout: 1500
+
+# Time in milliseconds to wait for responses from the back end or Elasticsearch. This value
+# must be a positive integer.
+#elasticsearch.requestTimeout: 30000
+
+# List of Kibana client-side headers to send to Elasticsearch. To send *no* client-side
+# headers, set this value to [] (an empty list).
+#elasticsearch.requestHeadersWhitelist: [ authorization ]
+
+# Header names and values that are sent to Elasticsearch. Any custom headers cannot be overwritten
+# by client-side headers, regardless of the elasticsearch.requestHeadersWhitelist configuration.
+#elasticsearch.customHeaders: {}
+
+# Time in milliseconds for Elasticsearch to wait for responses from shards. Set to 0 to disable.
+#elasticsearch.shardTimeout: 0
+
+# Time in milliseconds to wait for Elasticsearch at Kibana startup before retrying.
+#elasticsearch.startupTimeout: 5000
+
+# Specifies the path where Kibana creates the process ID file.
+#pid.file: /var/run/kibana.pid
+
+# Enables you specify a file where Kibana stores log output.
+#logging.dest: stdout
+
+# Set the value of this setting to true to suppress all logging output.
+#logging.silent: false
+
+# Set the value of this setting to true to suppress all logging output other than error messages.
+#logging.quiet: false
+
+# Set the value of this setting to true to log all events, including system usage information
+# and all requests.
+#logging.verbose: false
+
+# Set the interval in milliseconds to sample system and process performance
+# metrics. Minimum is 100ms. Defaults to 5000.
+#ops.interval: 5000
+
+# The default locale. This locale can be used in certain circumstances to substitute any missing
+# translations.
+#i18n.defaultLocale: "en"
diff --git a/kubernetes/log/resources/logstash/conf/logstash.yml b/kubernetes/log/resources/logstash/conf/logstash.yml
new file mode 100644
index 0000000..f658006
--- /dev/null
+++ b/kubernetes/log/resources/logstash/conf/logstash.yml
@@ -0,0 +1,16 @@
+http.host: "0.0.0.0"
+## Path where pipeline configurations reside
+path.config: /usr/share/logstash/pipeline
+ 
+## Type of queue : memeory based or file based
+#queue.type: persisted
+## Size of queue
+#queue.max_bytes: 1024mb
+## Setting true makes logstash check periodically for change in pipeline configurations
+config.reload.automatic: true
+  
+## xpack configurations
+#xpack.monitoring.elasticsearch.url: ["http://10.247.186.12:9200", "http://10.247.186.13:9200"]
+#xpack.monitoring.elasticsearch.username: elastic
+#xpack.monitoring.elasticsearch.password: changeme
+xpack.monitoring.enabled: false
diff --git a/kubernetes/log/resources/logstash/pipeline/onap-pipeline.conf b/kubernetes/log/resources/logstash/pipeline/onap-pipeline.conf
new file mode 100644
index 0000000..1a46375
--- /dev/null
+++ b/kubernetes/log/resources/logstash/pipeline/onap-pipeline.conf
@@ -0,0 +1,204 @@
+input {
+ beats {
+
+ ## Add a id to plugin configuration. Can be anything unique.
+ id => 'beats_plugin'
+
+ ######## Connection configurations ########
+
+ ## The port to listen on.
+ port => 5044
+
+ ## Close Idle clients after the specified time in seconds. Default is 60 seconds
+ #client_inactivity_timeout => 60
+
+ ######## Security configurations ########
+
+ ## Enable encryption. Default false.
+ #ssl => $filebeat_ssl
+
+ ## ssl certificate path.
+ #ssl_certificate => $filebeat_ssl_certificate
+
+ ## SSL key to use.
+ #ssl_key => $filebeat_ssl_key
+
+ ##SSL key passphrase to use.
+ #ssl_key_passphrase => $filebeat_ssl_key_passphrase
+
+ ## Value can be any of: none, peer, force_peer.
+ #ssl_verify_mode => $filebeat_ssl_verify_mode
+
+ ## Time in milliseconds for an incomplete ssl handshake to timeout. Default is 10000 ms.
+ #ssl_handshake_timeout => 10000
+ include_codec_tag => false
+ }
+}
+
+
+filter {
+ # Filter for log4j xml events
+ if "</log4j:event>" in [message] {
+   #Filter to parse xml event and retrieve data
+   xml {
+     source => "message"
+     store_xml => false
+     remove_namespaces => true
+     target => "xml_content"
+     xpath => [ "/event/message/text()", "logmsg" ,
+                "/event/@logger", "Logger",
+                "/event/@timestamp", "Timestamp",
+                "/event/@level", "loglevel",
+                "/event/@thread", "Thread",
+                "/event/throwable/text()", "Exceptionthrowable",
+                "/event/NDC/text()", "NDCs",
+                "/event/properties/data/@name","mdcname",
+                "/event/properties/data/@value","mdcvalue"]
+
+    }
+
+   #Ruby filter to iterate and separate MDCs into documents
+   ruby {
+     code => '
+       $i = 0
+       $num = 0
+       if event.get("[mdcname]")
+         $num = event.get("[mdcname]").length
+       end
+	   if $num != 0
+        until $i > $num do
+         if event.get("[mdcname]").at($i) and event.get("[mdcvalue]").at($i)
+            event.set(event.get("[mdcname]").at($i), event.get("[mdcvalue]").at($i))
+         end
+         $i=$i+1
+        end
+	   end
+          '
+    }
+
+   #Validations
+   if [Exceptionthrowable]
+   {
+      mutate {
+        replace => {
+           "exceptionmessage" => "%{[Exceptionthrowable]}"
+        }
+      }
+    }
+
+   if [NDCs]
+   {
+      mutate {
+        replace => {
+          "NDC" => "%{[NDCs]}"
+        }
+      }
+   }
+
+   mutate {
+     replace => {
+        "Logger" =>"%{[Logger]}"
+        "logmsg" =>"%{[logmsg]}"
+        "Timestamp" =>"%{[Timestamp]}"
+        "loglevel" =>"%{[loglevel]}"
+        "message" => "%{logmsg}"
+        "Thread" => "%{[Thread]}"
+     }
+     remove_field => ["mdcname", "mdcvalue", "logmsg","Exceptionthrowable","NDCs"]
+   }
+
+   if [Timestamp]
+   {
+     date {
+        match => ["Timestamp", "UNIX_MS"]
+        target => "Timestamp"
+     }
+   }
+ }
+ # Filter for logback events
+ else {
+  mutate {
+    gsub => [
+      'message', '= ', '=null',
+      'message', '=\t', '=null	', #This null is followed by a tab
+      'message', '\t$', '\t'
+    ]
+  }
+  kv {
+    field_split => "\t"
+    trim_key => "\s"
+    trim_value => "\s"
+  }
+  grok {
+    break_on_match => false
+    match => {
+      "message" => "%{TIMESTAMP_ISO8601:Timestamp}\t%{GREEDYDATA:Thread}\t%{SPACE}%{LOGLEVEL:loglevel}%{SPACE}\t%{JAVACLASS:Logger}\t(?:[^\t]+\t)*%{GREEDYDATA:message}"
+    }
+    overwrite => ["message"]
+  }
+ }
+}
+
+
+output {
+ elasticsearch {
+ id => 'onap_es'
+
+ ######### Security configurations #########
+
+ user => "elastic"
+ password => "changeme"
+
+ ## The .cer or .pem file to validate the server’s certificate
+ #cacert => $es_cacert
+
+ ## The keystore used to present a certificate to the server. It can be either .jks or .p12
+ #keystore => $es_keystore
+ #keystore_password => $es_keystore_password
+
+ ## Enable SSL/TLS secured communication to Elasticsearch cluster.
+ ## Default is not set which in that case depends on the protocol specidfied in hosts list
+ #ssl => $es_ssl
+
+ ## Option to validate the server’s certificate. Default is true
+ #ssl_certificate_verification => $es_ssl_certificate_verification
+
+ ## The JKS truststore to validate the server’s certificate.
+ #truststore => $es_truststore
+ #truststore_password => $es_truststore_password
+
+
+ ######### Elasticsearchcluster and host configurations #########
+
+#can specify one or a list of hosts. If sniffing is set, one is enough and others will be auto-discovered
+##Also protocol can be specified like ["http://10.247.186.12:9200"]
+ hosts => ["http://elasticsearch.onap-log:9200"]
+
+
+ ## This setting asks Elasticsearch for the list of all cluster nodes and adds them to the hosts list. Default is false.
+ sniffing => true
+
+ ## How long to wait, in seconds, between sniffing attempts. Default is 5 seconds.
+ #sniffing_delay => 5
+
+ ## Set the address of a forward HTTP proxy.
+ #proxy => $es_proxy
+
+ ##Use this if you must run Elasticsearch behind a proxy that remaps the root path for the Elasticsearch HTTP API lives
+ #path => $es_path
+
+ ######### Elasticsearch request configurations #########
+
+ ## This setting defines the maximum sized bulk request Logstash will make.
+ #flush_size => ?
+
+ ######### Document configurations #########
+
+ index => "onaplogs-%{+YYYY.MM.dd}"
+ document_type => "logs"
+
+ ## This can be used to associate child documents with a parent using the parent ID.
+ #parent => "abcd'
+ }
+}
+
diff --git a/kubernetes/log/templates/all-services.yaml b/kubernetes/log/templates/all-services.yaml
new file mode 100644
index 0000000..5f9412e
--- /dev/null
+++ b/kubernetes/log/templates/all-services.yaml
@@ -0,0 +1,49 @@
+apiVersion: v1
+kind: Service
+metadata:
+  labels:
+    app: elasticsearch
+  name: elasticsearch
+  namespace: {{ .Values.nsPrefix }}-log
+spec:
+  ports:
+  - name: http
+    port: 9200
+    targetPort: 9200
+    nodePort: {{ .Values.nodePortPrefix }}54
+  selector:
+    app: elasticsearch
+  type: NodePort
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: logstash
+  namespace: {{ .Values.nsPrefix }}-log
+  labels:
+    app: logstash
+spec:
+  ports:
+  - name: transport
+    port: 5044
+    targetPort: 5044
+  selector:
+    app: logstash
+---
+apiVersion: v1
+kind: Service
+metadata:
+  labels:
+    app: kibana
+  name: kibana
+  namespace: {{ .Values.nsPrefix }}-log
+spec:
+  ports:
+  - name: tcp-ks
+    port: 5601
+    targetPort: 5601
+    nodePort: {{ .Values.nodePortPrefix }}53
+  selector:
+    app: kibana
+  type: NodePort
+
diff --git a/kubernetes/log/templates/elasticsearch-deployment.yaml b/kubernetes/log/templates/elasticsearch-deployment.yaml
new file mode 100644
index 0000000..75df8a1
--- /dev/null
+++ b/kubernetes/log/templates/elasticsearch-deployment.yaml
@@ -0,0 +1,81 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  labels:
+    app: elasticsearch
+  name: elasticsearch
+  namespace: {{ .Values.nsPrefix }}-log
+spec:
+  selector:
+    matchLabels:
+      app: elasticsearch
+  template:
+    metadata:
+      labels:
+        app: elasticsearch
+      name: elasticsearch
+      annotations:
+        pod.beta.kubernetes.io/init-containers: '[
+          {
+              "command": ["sysctl", "-w", "vm.max_map_count=262144"],
+              "env": [
+                  {
+                      "name": "NAMESPACE",
+                      "valueFrom": {
+                          "fieldRef": {
+                              "apiVersion": "v1",
+                              "fieldPath": "metadata.namespace"
+                          }
+                      }
+                  }
+              ],
+              "securityContext": {
+                "privileged": true
+              },
+              "image": "{{ .Values.image.es_bb }}",
+              "imagePullPolicy": "{{ .Values.pullPolicy }}",
+              "name": "init-sysctl"
+          }
+          ]'
+    spec:
+      containers:
+      - name: elasticsearch
+        image: {{ .Values.image.elasticsearch}}
+        ports:
+        - containerPort: 9200
+          name: http
+          protocol: TCP
+        - containerPort: 9300
+          name: transport
+          protocol: TCP
+        readinessProbe:
+          tcpSocket:
+            port: 9200
+        volumeMounts:
+         - mountPath: /usr/share/elasticsearch/conf/
+           name: elasticsearch-conf
+         - mountPath: /usr/share/elasticsearch/data/
+           name: elasticsearch-data
+         - mountPath: /usr/share/elasticsearch/logs/
+           name: elasticsearch-logs
+      volumes:
+        - name: elasticsearch-data
+          persistentVolumeClaim:
+            claimName: elasticsearch-db
+        - name: elasticsearch-logs
+          hostPath:
+            path: /dockerdata-nfs/{{ .Values.nsPrefix }}/log/elasticsearch/logs
+        - name: elasticsearch-conf
+          configMap:
+            name: elasticsearch-configmap
+            items:
+            - key: elasticsearch.yml
+              path: elasticsearch.yml
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: elasticsearch-configmap
+  namespace: {{ .Values.nsPrefix }}-log
+data:
+{{ (.Files.Glob "resources/elasticsearch/conf/elasticsearch.yml").AsConfig | indent 2 }}
\ No newline at end of file
diff --git a/kubernetes/log/templates/kibana-deployment.yaml b/kubernetes/log/templates/kibana-deployment.yaml
new file mode 100644
index 0000000..f8070ef
--- /dev/null
+++ b/kubernetes/log/templates/kibana-deployment.yaml
@@ -0,0 +1,71 @@
+apiVersion: extensions/v1beta1 
+kind: Deployment
+metadata:
+  labels:
+    app: kibana
+  name: kibana
+  namespace: {{ .Values.nsPrefix }}-log
+spec:
+  selector:
+    matchLabels:
+      app: kibana
+  template:
+    metadata:
+      labels:
+        app: kibana
+      name: kibana
+      annotations:
+        pod.beta.kubernetes.io/init-containers: '[
+          {
+              "args": [
+                  "--container-name",
+                  "elasticsearch"
+              ],
+              "command": [
+                  "/root/ready.py"
+              ],
+              "env": [
+                  {
+                      "name": "NAMESPACE",
+                      "valueFrom": {
+                          "fieldRef": {
+                              "apiVersion": "v1",
+                              "fieldPath": "metadata.namespace"
+                          }
+                      }
+                  }
+              ],
+              "image": "{{ .Values.image.readiness }}",
+              "imagePullPolicy": "{{ .Values.pullPolicy }}",
+              "name": "kibana-readiness"
+          }
+          ]'
+    spec:
+      containers:
+      - name: kibana
+        image: {{ .Values.image.kibana }}
+        ports:
+        - containerPort: 5601
+          name: http
+          protocol: TCP
+        readinessProbe:
+          tcpSocket:
+            port: 5601
+        volumeMounts:
+         - name: kibana-conf
+           mountPath: /usr/share/kibana/config/      
+      volumes:
+        - name: kibana-conf
+          configMap:
+            name: kibana-configmap
+            items:
+            - key: kibana.yml
+              path: kibana.yml
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: kibana-configmap
+  namespace: {{ .Values.nsPrefix }}-log
+data:
+{{ (.Files.Glob "resources/kibana/conf/kibana.yml").AsConfig | indent 2 }}
\ No newline at end of file
diff --git a/kubernetes/log/templates/log-pv-pvc.yaml b/kubernetes/log/templates/log-pv-pvc.yaml
new file mode 100644
index 0000000..7e51e4c
--- /dev/null
+++ b/kubernetes/log/templates/log-pv-pvc.yaml
@@ -0,0 +1,30 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: elasticsearch-db
+  namespace: "{{ .Values.nsPrefix }}-log"
+  labels:
+    name: elasticsearch-db
+spec:
+  capacity:
+    storage: 2Gi
+  accessModes:
+    - ReadWriteMany
+  persistentVolumeReclaimPolicy: Retain
+  hostPath:
+    path: /dockerdata-nfs/{{ .Values.nsPrefix }}/elasticsearch/data
+---
+kind: PersistentVolumeClaim
+apiVersion: v1
+metadata:
+  name: elasticsearch-db
+  namespace: "{{ .Values.nsPrefix }}-log"
+spec:
+  accessModes:
+    - ReadWriteMany
+  resources:
+    requests:
+      storage: 2Gi
+  selector:
+    matchLabels:
+      name: elasticsearch-db
diff --git a/kubernetes/log/templates/logstash-deployment.yaml b/kubernetes/log/templates/logstash-deployment.yaml
new file mode 100644
index 0000000..23d5906
--- /dev/null
+++ b/kubernetes/log/templates/logstash-deployment.yaml
@@ -0,0 +1,82 @@
+apiVersion: extensions/v1beta1
+kind: Deployment
+metadata:
+  labels:
+    app: logstash
+  name: logstash
+  namespace: {{ .Values.nsPrefix }}-log 
+spec:
+  selector:
+    matchLabels:
+      app: logstash
+  template:
+    metadata:
+      labels:
+        app: logstash
+      name: logstash
+      annotations:
+        pod.beta.kubernetes.io/init-containers: '[
+          {
+              "args": [
+                  "--container-name",
+                  "elasticsearch"
+              ],
+              "command": [
+                  "/root/ready.py"
+              ],
+              "env": [
+                  {
+                      "name": "NAMESPACE",
+                      "valueFrom": {
+                          "fieldRef": {
+                              "apiVersion": "v1",
+                              "fieldPath": "metadata.namespace"
+                          }
+                      }
+                  }
+              ],
+              "image": "{{ .Values.image.readiness }}",
+              "imagePullPolicy": "{{ .Values.pullPolicy }}",
+              "name": "logstash-readiness"
+          }
+          ]'
+
+    spec:
+      containers:
+      - name: logstash
+        image: {{ .Values.image.logstash }}
+        ports:
+        - containerPort: 5044 
+          name: transport
+          protocol: TCP
+        readinessProbe:
+          tcpSocket:
+            port: 5044
+        volumeMounts:
+         - mountPath: /usr/share/logstash/config/
+           name: logstash-conf
+         - mountPath: /usr/share/logstash/pipeline/
+           name: logstash-pipeline
+      volumes:
+        - name: logstash-conf
+          configMap:
+            name: logstash-configmap
+            items:
+            - key: logstash.yml
+              path: logstash.yml
+        - name: logstash-pipeline
+          configMap:
+            name: logstash-configmap
+            items:
+            - key: onap-pipeline.conf
+              path: onap-pipeline.conf
+
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: logstash-configmap
+  namespace: {{ .Values.nsPrefix }}-log
+data:
+{{ (.Files.Glob "resources/logstash/conf/logstash.yml").AsConfig | indent 2 }}
+{{ (.Files.Glob "resources/logstash/pipeline/onap-pipeline.conf").AsConfig | indent 2 }}
diff --git a/kubernetes/log/values.yaml b/kubernetes/log/values.yaml
new file mode 100644
index 0000000..0441830
--- /dev/null
+++ b/kubernetes/log/values.yaml
@@ -0,0 +1,10 @@
+nsPrefix: onap
+pullPolicy: Always 
+nodePortPrefix: 302
+image:
+  readiness: oomk8s/readiness-check:1.0.0
+  logstash: docker.elastic.co/logstash/logstash:5.4.3
+  kibana: docker.elastic.co/kibana/kibana:5.5.0
+  elasticsearch: docker.elastic.co/elasticsearch/elasticsearch:5.5.0
+  es_bb: busybox
+
diff --git a/kubernetes/oneclick/setenv.bash b/kubernetes/oneclick/setenv.bash
index 4b0d940..f39b555 100644
--- a/kubernetes/oneclick/setenv.bash
+++ b/kubernetes/oneclick/setenv.bash
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-HELM_APPS=('mso' 'message-router' 'sdnc' 'vid' 'robot' 'portal' 'policy' 'appc' 'aai' 'sdc' 'dcae')
+HELM_APPS=('mso' 'message-router' 'sdnc' 'vid' 'robot' 'portal' 'policy' 'appc' 'aai' 'sdc' 'dcae' 'log')
 ONAP_DOCKER_REGISTRY=${ONAP_DOCKER_REGISTRY:-nexus3.onap.org:10001}
 ONAP_DOCKER_USER=${ONAP_DOCKER_USER:-docker}
 ONAP_DOCKER_PASS=${ONAP_DOCKER_PASS:-docker}