[AAI] OOM AAI graphadmin logging structure enhancement

change for logback and localhost xml files structure
image updated for aai graphadmin

Issue-ID: AAI-3581
Signed-off-by: leila <leila.nishimwe@bell.ca>
Change-Id: I0123e1cf889907e45f6a2889cd45f44a92fea306
diff --git a/kubernetes/aai/components/aai-graphadmin/resources/config/localhost-access-logback.xml b/kubernetes/aai/components/aai-graphadmin/resources/config/localhost-access-logback.xml
index 449ea30..8e1bf21 100644
--- a/kubernetes/aai/components/aai-graphadmin/resources/config/localhost-access-logback.xml
+++ b/kubernetes/aai/components/aai-graphadmin/resources/config/localhost-access-logback.xml
@@ -19,20 +19,36 @@
     ============LICENSE_END=========================================================
 */}}
 -->
-<configuration>
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
     <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
-    <appender name="ACCESS"
-        class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file>
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-            <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-        </rollingPolicy>
+    <property name="maxHistory" value='{{.Values.accessLogback.maxHistory}}' />
+    <property name="totalSizeCap" value='{{.Values.accessLogback.totalSizeCap}}' />
+    <property name="logToFileEnabled" value='{{.Values.accessLogback.logToFileEnabled}}'/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+        <then>
+            <appender name="ACCESS"
+                class="ch.qos.logback.core.rolling.RollingFileAppender">
+                <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file>
+                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+                    <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd}
+                    </fileNamePattern>
+                    <maxHistory>${maxHistory}</maxHistory>
+                    <totalSizeCap>${totalSizeCap}</totalSizeCap>
+                </rollingPolicy>
+                <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder">
+                    <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId} %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU} %i{X-AAI-SSL-Client-O} %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST} %i{X-AAI-SSL-Client-C} %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter} %i{X-AAI-SSL-Client-DN} %D</Pattern>
+                </encoder>
+            </appender>
+            <appender-ref ref="ACCESS" />
+        </then>
+    </if>
+
+    <appender name="STDOUTACCESS" class="ch.qos.logback.core.ConsoleAppender">
         <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder">
-            <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId} %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU} %i{X-AAI-SSL-Client-O} %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST} %i{X-AAI-SSL-Client-C} %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter} %i{X-AAI-SSL-Client-DN} %D</Pattern>
+            <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId} %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU} %i{X-AAI-SSL-Client-O} %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST} %i{X-AAI-SSL-Client-C} %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter} %i{X-AAI-SSL-Client-DN} %D - "logType": "access"</Pattern>
         </encoder>
     </appender>
-    <appender-ref ref="ACCESS" />
+    <appender-ref ref="STDOUTACCESS" />
 </configuration>
 
 <!--
diff --git a/kubernetes/aai/components/aai-graphadmin/resources/config/logback.xml b/kubernetes/aai/components/aai-graphadmin/resources/config/logback.xml
index 243acd2..fd79f70 100644
--- a/kubernetes/aai/components/aai-graphadmin/resources/config/logback.xml
+++ b/kubernetes/aai/components/aai-graphadmin/resources/config/logback.xml
@@ -26,6 +26,10 @@
   <property name="namespace" value="graph-admin"/>
   <property name="AJSC_HOME" value="${AJSC_HOME:-.}"/>
   <property name="logDirectory" value="${AJSC_HOME}/logs"/>
+  <property name="maxHistory" value='{{.Values.logback.maxHistory}}' />
+  <property name="totalSizeCap" value='{{.Values.logback.totalSizeCap}}' />
+  <property name="queueSize" value='{{.Values.logback.queueSize}}'/>
+  <property name="logToFileEnabled" value='{{.Values.logback.logToFileEnabled}}'/>
   <!-- Old patterns
     <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
     <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%ecompStatusCode|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/>
@@ -52,681 +56,808 @@
   <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
   <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
   <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+
   <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-    <encoder>
-      <pattern>
-                %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
-      </pattern>
+    <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
+      <providers>
+        <timestamp><fieldName>timestamp</fieldName></timestamp>
+        <message/>
+        <mdc>
+          <fieldName>context</fieldName>
+          <excludeMdcKeyName>ServerIPAddress</excludeMdcKeyName>
+          <excludeMdcKeyName>EntryTimestamp</excludeMdcKeyName>
+          <excludeMdcKeyName>InvokeTimestamp</excludeMdcKeyName>
+          <excludeMdcKeyName>ErrorCode</excludeMdcKeyName>
+          <excludeMdcKeyName>ErrorDesc</excludeMdcKeyName>
+        </mdc>
+        <stackTrace>
+          <fieldName>exception</fieldName>
+          <throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
+            <exclude>^sun\.reflect\..*\.invoke</exclude>
+            <exclude>^net\.sf\.cglib\.proxy\.MethodProxy\.invoke</exclude>
+            <rootCauseFirst>true</rootCauseFirst>
+          </throwableConverter>
+        </stackTrace>
+        <threadName><fieldName>thread</fieldName></threadName>
+        <loggerName>
+          <fieldName>logger</fieldName>
+          <shortenedLoggerNameLength>36</shortenedLoggerNameLength>
+        </loggerName>
+        <logLevel/>
+        <pattern>
+          <pattern>{"logType":"app"}</pattern>
+        </pattern>
+      </providers>
     </encoder>
   </appender>
-  <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <file>${logDirectory}/rest/sane.log</file>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n</pattern>
-    </encoder>
-  </appender>
-  <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
-    <queueSize>1000</queueSize>
-    <includeCallerData>true</includeCallerData>
-    <appender-ref ref="SANE"/>
-  </appender>
-  <appender name="METRIC" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <file>${logDirectory}/rest/metrics.log</file>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${metricPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">
-    <queueSize>1000</queueSize>
-    <includeCallerData>true</includeCallerData>
-    <appender-ref ref="METRIC"/>
-  </appender>
-  <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <file>${logDirectory}/rest/debug.log</file>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
-    <queueSize>1000</queueSize>
-    <appender-ref ref="DEBUG"/>
-    <includeCallerData>true</includeCallerData>
-  </appender>
-  <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <file>${logDirectory}/rest/error.log</file>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-      <level>WARN</level>
-    </filter>
-    <encoder>
-      <pattern>${errorPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
-    <queueSize>1000</queueSize>
-    <appender-ref ref="ERROR"/>
-  </appender>
-  <appender name="AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <file>${logDirectory}/rest/audit.log</file>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}
+
+  <if condition='property("logToFileEnabled").contains("true")'>
+    <then>
+        <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <file>${logDirectory}/rest/sane.log</file>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n</pattern>
+          </encoder>
+        </appender>
+        <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
+          <queueSize>${queueSize}</queueSize>
+          <includeCallerData>true</includeCallerData>
+          <appender-ref ref="SANE"/>
+        </appender>
+        <appender name="METRIC" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <file>${logDirectory}/rest/metrics.log</file>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${metricPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender">
+          <queueSize>${queueSize}</queueSize>
+          <includeCallerData>true</includeCallerData>
+          <appender-ref ref="METRIC"/>
+        </appender>
+        <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <file>${logDirectory}/rest/debug.log</file>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
+          <queueSize>${queueSize}</queueSize>
+          <appender-ref ref="DEBUG"/>
+          <includeCallerData>true</includeCallerData>
+        </appender>
+        <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <file>${logDirectory}/rest/error.log</file>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+          </filter>
+          <encoder>
+            <pattern>${errorPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
+          <queueSize>${queueSize}</queueSize>
+          <appender-ref ref="ERROR"/>
+        </appender>
+        <appender name="AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <file>${logDirectory}/rest/audit.log</file>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${auditPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
+          <queueSize>${queueSize}</queueSize>
+          <includeCallerData>true</includeCallerData>
+          <appender-ref ref="AUDIT"/>
+        </appender>
+        <appender name="translog" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <file>${logDirectory}/rest/translog.log</file>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${transLogPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
+          <queueSize>${queueSize}</queueSize>
+          <includeCallerData>true</includeCallerData>
+          <appender-ref ref="translog"/>
+        </appender>
+        <appender name="dmaapAAIEventConsumer" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+          </filter>
+          <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${"errorPattern"}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dmaapAAIEventConsumerInfo" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/dmaapAAIEventConsumer/dmaap-transaction.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/dmaap-transaction.log.%d{yyyy-MM-dd}
             </fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${auditPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
-    <queueSize>1000</queueSize>
-    <includeCallerData>true</includeCallerData>
-    <appender-ref ref="AUDIT"/>
-  </appender>
-  <appender name="translog" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <file>${logDirectory}/rest/translog.log</file>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${transLogPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
-    <queueSize>1000</queueSize>
-    <includeCallerData>true</includeCallerData>
-    <appender-ref ref="translog"/>
-  </appender>
-  <appender name="dmaapAAIEventConsumer" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-      <level>WARN</level>
-    </filter>
-    <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${"errorPattern"}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dmaapAAIEventConsumerInfo" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>INFO</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/dmaapAAIEventConsumer/dmaap-transaction.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/dmaap-transaction.log.%d{yyyy-MM-dd}
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dmaapAAIEventConsumerDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dmaapAAIEventConsumerMetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${metricPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="external" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+          </filter>
+          <file>${logDirectory}/external/external.log</file>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}
             </fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dmaapAAIEventConsumerDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dmaapAAIEventConsumerMetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>INFO</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${metricPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="external" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-      <level>WARN</level>
-    </filter>
-    <file>${logDirectory}/external/external.log</file>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd}
-            </fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <!-- DataGrooming logs started -->
-  <appender name="dataGrooming" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-      <level>WARN</level>
-    </filter>
-    <File>${logDirectory}/dataGrooming/error.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dataGrooming/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${errorPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dataGroomingdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/dataGrooming/debug.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dataGrooming/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dataGroomingaudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>INFO</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/dataGrooming/audit.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dataGrooming/audit.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${auditPattern}</pattern>
-    </encoder>
-  </appender>
-  <!-- DataGrooming logs ended -->
-  <!-- DataSnapshot logs started -->
-  <appender name="dataSnapshot" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-      <level>WARN</level>
-    </filter>
-    <File>${logDirectory}/dataSnapshot/error.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dataSnapshot/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${errorPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dataSnapshotdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/dataSnapshot/debug.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dataSnapshot/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dataSnapshotaudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>INFO</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/dataSnapshot/audit.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dataSnapshot/audit.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${auditPattern}</pattern>
-    </encoder>
-  </appender>
-  <!-- DataSnapshot logs ended -->
-  <!-- HistoryTruncate logs started -->
-  <appender name="historyTruncate" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-      <level>WARN</level>
-    </filter>
-    <File>${logDirectory}/historyTruncate/error.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/historyTruncate/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${errorPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="historyTruncatedebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/historyTruncate/debug.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/historyTruncate/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="historyTruncateaudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>INFO</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/historyTruncate/audit.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/historyTruncate/audit.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${auditPattern}</pattern>
-    </encoder>
-  </appender>
-  <!-- historyTruncate logs ended -->
-  <!-- CreateDBSchema logs started  -->
-  <appender name="createDBSchema" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-      <level>WARN</level>
-    </filter>
-    <File>${logDirectory}/createDBSchema/error.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/createDBSchema/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${"errorPattern"}</pattern>
-    </encoder>
-  </appender>
-  <appender name="createDBSchemadebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/createDBSchema/debug.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/createDBSchema/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="createDBSchemametric" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>INFO</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/createDBSchema/metrics.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/createDBSchema/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${metricPattern}</pattern>
-    </encoder>
-  </appender>
-  <!-- CreateDBSchema logs ended  -->
-  <!-- DataCleanupTasks logs started  -->
-  <appender name="dataCleanuperror" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-      <level>WARN</level>
-    </filter>
-    <File>${logDirectory}/misc/error.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/misc/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${"errorPattern"}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dataCleanupdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/misc/debug.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/misc/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dataCleanupaudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>INFO</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/misc/audit.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/misc/audit.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${auditPattern}</pattern>
-    </encoder>
-  </appender>
-  <!-- DataCleanupTasks logs ended  -->
-  <!-- dupeTool logs started -->
-  <appender name="dupeTooldebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/dupetool/debug.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dupetool/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dupeToolerror" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>WARN</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/dupeTool/error.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dupeTool/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${errorPattern}</pattern>
-    </encoder>
-  </appender>
-  <!-- dupeTool logs ended -->
-  <!-- dynamicPayloadGenerator log starts here -->
-  <appender name="dynamicPayloadGeneratorError" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-      <level>WARN</level>
-    </filter>
-    <File>${logDirectory}/dynamicPayloadGenerator/error.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dynamicPayloadGenerator/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${errorPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dynamicPayloadGeneratorDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/dynamicPayloadGenerator/debug.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dynamicPayloadGenerator/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dynamicPayloadGeneratorAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>INFO</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/dataExport/audit.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dynamicPayloadGenerator/audit.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${auditPattern}</pattern>
-    </encoder>
-  </appender>
-  <!-- dynamicPayloadGenerator log ends here -->
-  <!-- forceDelete logs started -->
-  <appender name="forceDeletedebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/forceDelete/debug.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/forceDelete/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="forceDeleteerror" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>WARN</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/forceDelete/error.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/forceDelete/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${errorPattern}</pattern>
-    </encoder>
-  </appender>
-  <!-- forceDelete logs ended -->
-  <!-- migration logs started -->
-  <appender name="migrationdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/migration/debug.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/migration/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="migrationerror" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>WARN</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/migration/error.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/migration/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${errorPattern}</pattern>
-    </encoder>
-  </appender>
-  <!-- migration logs ended -->
-  <!-- DataGrooming logs started -->
-  <appender name="dataExportError" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-      <level>WARN</level>
-    </filter>
-    <File>${logDirectory}/dataExport/error.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dataExport/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${errorPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dataExportDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/dataExport/debug.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dataExport/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dataExportAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>INFO</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/dataExport/audit.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dataExport/audit.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${auditPattern}</pattern>
-    </encoder>
-  </appender>
-  <!-- schemaMod log starts -->
-  <appender name="schemaModdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/schemaMod/debug.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/schemaMod/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="schemaModerror" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>WARN</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/schemaMod/error.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/schemaMod/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${errorPattern}</pattern>
-    </encoder>
-  </appender>
-  <!-- schemaMod log ends -->
-  <!-- uniquePropertyCheck log starts here -->
-  <appender name="uniquePropertyCheckdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/uniquePropertyCheck/debug.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/uniquePropertyCheck/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="uniquePropertyCheckmetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>INFO</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/uniquePropertyCheck/metrics.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/uniquePropertyCheck/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${metricPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="uniquePropertyCheckerror" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>WARN</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/uniquePropertyCheck/error.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/uniquePropertyCheck/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${errorPattern}</pattern>
-    </encoder>
-  </appender>
-  <!-- uniquePropertyCheck log ends here -->
-  <!-- dynamicPayloadGenerator log starts here -->
-  <appender name="dynamicPayloadGeneratorError" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-      <level>WARN</level>
-    </filter>
-    <File>${logDirectory}/dynamicPayloadGenerator/error.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dynamicPayloadGenerator/error.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${errorPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dynamicPayloadGeneratorDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>DEBUG</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/dynamicPayloadGenerator/debug.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dynamicPayloadGenerator/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </appender>
-  <appender name="dynamicPayloadGeneratorAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.LevelFilter">
-      <level>INFO</level>
-      <onMatch>ACCEPT</onMatch>
-      <onMismatch>DENY</onMismatch>
-    </filter>
-    <File>${logDirectory}/dataExport/audit.log</File>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/dynamicPayloadGenerator/audit.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${auditPattern}</pattern>
-    </encoder>
-  </appender>
-  <!-- dynamicPayloadGenerator log ends here -->
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <!-- DataGrooming logs started -->
+        <appender name="dataGrooming" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+          </filter>
+          <File>${logDirectory}/dataGrooming/error.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dataGrooming/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${errorPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dataGroomingdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/dataGrooming/debug.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dataGrooming/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dataGroomingaudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/dataGrooming/audit.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dataGrooming/audit.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${auditPattern}</pattern>
+          </encoder>
+        </appender>
+        <!-- DataGrooming logs ended -->
+        <!-- DataSnapshot logs started -->
+        <appender name="dataSnapshot" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+          </filter>
+          <File>${logDirectory}/dataSnapshot/error.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dataSnapshot/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${errorPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dataSnapshotdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/dataSnapshot/debug.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dataSnapshot/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dataSnapshotaudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/dataSnapshot/audit.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dataSnapshot/audit.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${auditPattern}</pattern>
+          </encoder>
+        </appender>
+        <!-- DataSnapshot logs ended -->
+        <!-- HistoryTruncate logs started -->
+        <appender name="historyTruncate" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+          </filter>
+          <File>${logDirectory}/historyTruncate/error.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/historyTruncate/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${errorPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="historyTruncatedebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/historyTruncate/debug.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/historyTruncate/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="historyTruncateaudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/historyTruncate/audit.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/historyTruncate/audit.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${auditPattern}</pattern>
+          </encoder>
+        </appender>
+        <!-- historyTruncate logs ended -->
+        <!-- CreateDBSchema logs started  -->
+        <appender name="createDBSchema" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+          </filter>
+          <File>${logDirectory}/createDBSchema/error.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/createDBSchema/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${"errorPattern"}</pattern>
+          </encoder>
+        </appender>
+        <appender name="createDBSchemadebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/createDBSchema/debug.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/createDBSchema/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="createDBSchemametric" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/createDBSchema/metrics.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/createDBSchema/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${metricPattern}</pattern>
+          </encoder>
+        </appender>
+        <!-- CreateDBSchema logs ended  -->
+        <!-- DataCleanupTasks logs started  -->
+        <appender name="dataCleanuperror" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+          </filter>
+          <File>${logDirectory}/misc/error.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/misc/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${"errorPattern"}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dataCleanupdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/misc/debug.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/misc/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dataCleanupaudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/misc/audit.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/misc/audit.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${auditPattern}</pattern>
+          </encoder>
+        </appender>
+        <!-- DataCleanupTasks logs ended  -->
+        <!-- dupeTool logs started -->
+        <appender name="dupeTooldebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/dupetool/debug.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dupetool/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dupeToolerror" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>WARN</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/dupeTool/error.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dupeTool/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${errorPattern}</pattern>
+          </encoder>
+        </appender>
+        <!-- dupeTool logs ended -->
+        <!-- dynamicPayloadGenerator log starts here -->
+        <appender name="dynamicPayloadGeneratorError" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+          </filter>
+          <File>${logDirectory}/dynamicPayloadGenerator/error.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dynamicPayloadGenerator/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${errorPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dynamicPayloadGeneratorDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/dynamicPayloadGenerator/debug.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dynamicPayloadGenerator/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dynamicPayloadGeneratorAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/dataExport/audit.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dynamicPayloadGenerator/audit.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${auditPattern}</pattern>
+          </encoder>
+        </appender>
+        <!-- dynamicPayloadGenerator log ends here -->
+        <!-- forceDelete logs started -->
+        <appender name="forceDeletedebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/forceDelete/debug.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/forceDelete/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="forceDeleteerror" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>WARN</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/forceDelete/error.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/forceDelete/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${errorPattern}</pattern>
+          </encoder>
+        </appender>
+        <!-- forceDelete logs ended -->
+        <!-- migration logs started -->
+        <appender name="migrationdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/migration/debug.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/migration/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="migrationerror" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>WARN</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/migration/error.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/migration/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${errorPattern}</pattern>
+          </encoder>
+        </appender>
+        <!-- migration logs ended -->
+        <!-- DataGrooming logs started -->
+        <appender name="dataExportError" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+          </filter>
+          <File>${logDirectory}/dataExport/error.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dataExport/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${errorPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dataExportDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/dataExport/debug.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dataExport/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dataExportAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/dataExport/audit.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dataExport/audit.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${auditPattern}</pattern>
+          </encoder>
+        </appender>
+        <!-- schemaMod log starts -->
+        <appender name="schemaModdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/schemaMod/debug.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/schemaMod/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="schemaModerror" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>WARN</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/schemaMod/error.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/schemaMod/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${errorPattern}</pattern>
+          </encoder>
+        </appender>
+        <!-- schemaMod log ends -->
+        <!-- uniquePropertyCheck log starts here -->
+        <appender name="uniquePropertyCheckdebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/uniquePropertyCheck/debug.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/uniquePropertyCheck/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="uniquePropertyCheckmetric" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/uniquePropertyCheck/metrics.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/uniquePropertyCheck/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${metricPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="uniquePropertyCheckerror" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>WARN</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/uniquePropertyCheck/error.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/uniquePropertyCheck/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${errorPattern}</pattern>
+          </encoder>
+        </appender>
+        <!-- uniquePropertyCheck log ends here -->
+        <!-- dynamicPayloadGenerator log starts here -->
+        <appender name="dynamicPayloadGeneratorError" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+            <level>WARN</level>
+          </filter>
+          <File>${logDirectory}/dynamicPayloadGenerator/error.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dynamicPayloadGenerator/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${errorPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dynamicPayloadGeneratorDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>DEBUG</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/dynamicPayloadGenerator/debug.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dynamicPayloadGenerator/debug.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${debugPattern}</pattern>
+          </encoder>
+        </appender>
+        <appender name="dynamicPayloadGeneratorAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
+          <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+          </filter>
+          <File>${logDirectory}/dataExport/audit.log</File>
+          <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${logDirectory}/dynamicPayloadGenerator/audit.log.%d{yyyy-MM-dd}</fileNamePattern>
+            <maxHistory>${maxHistory}</maxHistory>
+            <totalSizeCap>${totalSizeCap}</totalSizeCap>
+          </rollingPolicy>
+          <encoder>
+            <pattern>${auditPattern}</pattern>
+          </encoder>
+        </appender>
+        <!-- dynamicPayloadGenerator log ends here -->
+    </then>
+  </if>
+
   <logger name="org.onap.aai" level="DEBUG" additivity="false">
-    <appender-ref ref="asyncDEBUG"/>
-    <appender-ref ref="asyncSANE"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="asyncDEBUG"/>
+        <appender-ref ref="asyncSANE"/>
+      </then>
+    </if>
     <appender-ref ref="STDOUT"/>
   </logger>
   <!-- Spring related loggers -->
@@ -780,161 +911,262 @@
   <logger name="ch.qos.logback.core" level="WARN"/>
   <logger name="org.eclipse.jetty" level="WARN"/>
   <!-- logback jms appenders & loggers definition starts here -->
-  <appender name="auditLogs" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.ThresholdFilter"/>
-    <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log</file>
-    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-      <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip</fileNamePattern>
-      <minIndex>1</minIndex>
-      <maxIndex>9</maxIndex>
-    </rollingPolicy>
-    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-      <maxFileSize>5MB</maxFileSize>
-    </triggeringPolicy>
-    <encoder>
-      <pattern>auditPattern</pattern>
-    </encoder>
-  </appender>
-  <appender name="perfLogs" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.ThresholdFilter"/>
-    <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log</file>
-    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
-      <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip</fileNamePattern>
-      <minIndex>1</minIndex>
-      <maxIndex>9</maxIndex>
-    </rollingPolicy>
-    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
-      <maxFileSize>5MB</maxFileSize>
-    </triggeringPolicy>
-    <encoder>
-      <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
-    </encoder>
-  </appender>
-  <appender name="auth" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
-      <level>DEBUG</level>
-    </filter>
-    <file>${logDirectory}/auth/auth.log</file>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/auth/auth.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}[%thread] %-5level %logger{1024} - %msg%n</pattern>
-    </encoder>
-  </appender>
-  <appender name="asyncAUTH" class="ch.qos.logback.classic.AsyncAppender">
-    <queueSize>1000</queueSize>
-    <includeCallerData>true</includeCallerData>
-    <appender-ref ref="auth"/>
-  </appender>
+  <if condition='property("logToFileEnabled").contains("true")'>
+    <then>
+      <appender name="auditLogs" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter"/>
+        <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+          <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip</fileNamePattern>
+          <minIndex>1</minIndex>
+          <maxIndex>9</maxIndex>
+        </rollingPolicy>
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+          <maxFileSize>5MB</maxFileSize>
+        </triggeringPolicy>
+        <encoder>
+          <pattern>auditPattern</pattern>
+        </encoder>
+      </appender>
+      <appender name="perfLogs" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter"/>
+        <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
+          <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip</fileNamePattern>
+          <minIndex>1</minIndex>
+          <maxIndex>9</maxIndex>
+        </rollingPolicy>
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+          <maxFileSize>5MB</maxFileSize>
+        </triggeringPolicy>
+        <encoder>
+          <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
+        </encoder>
+      </appender>
+      <appender name="auth" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
+          <level>DEBUG</level>
+        </filter>
+        <file>${logDirectory}/auth/auth.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+          <fileNamePattern>${logDirectory}/auth/auth.log.%d{yyyy-MM-dd}</fileNamePattern>
+          <maxHistory>${maxHistory}</maxHistory>
+          <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+          <pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}[%thread] %-5level %logger{1024} - %msg%n</pattern>
+        </encoder>
+      </appender>
+      <appender name="asyncAUTH" class="ch.qos.logback.classic.AsyncAppender">
+        <queueSize>${queueSize}</queueSize>
+        <includeCallerData>true</includeCallerData>
+        <appender-ref ref="auth"/>
+      </appender>
+    </then>
+  </if>
+
   <logger name="AuditRecord" level="INFO" additivity="false">
-    <appender-ref ref="auditLogs"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="auditLogs"/>
+      </then>
+    </if>
+    <appender-ref ref="STDOUT"/>
   </logger>
   <logger name="AuditRecord_DirectCall" level="INFO" additivity="false">
-    <appender-ref ref="auditLogs"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="auditLogs"/>
+      </then>
+    </if>
+    <appender-ref ref="STDOUT"/>
   </logger>
   <logger name="PerfTrackerRecord" level="INFO" additivity="false">
-    <appender-ref ref="perfLogs"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="perfLogs"/>
+      </then>
+    </if>
+    <appender-ref ref="STDOUT"/>
   </logger>
   <!-- logback jms appenders & loggers definition ends here -->
   <logger name="org.onap.aai.aaf" level="DEBUG" additivity="false">
-    <appender-ref ref="asyncAUTH"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="asyncAUTH"/>
+      </then>
+    </if>
     <appender-ref ref="STDOUT"/>
   </logger>
-  <logger name="org.onap.aai.aailog.filter.RestClientLoggingInterceptor" level="INFO">
-    <appender-ref ref="asyncMETRIC"/>
-    <appender-ref ref="STDOUT"/>
-  </logger>
-  <logger name="org.onap.logging.filter.base.AbstractMetricLogFilter" level="INFO">
-    <appender-ref ref="asyncMETRIC"/>
-    <appender-ref ref="STDOUT"/>
-  </logger>
-  <logger name="org.onap.aai.aailog.logs.AaiScheduledTaskAuditLog" level="INFO">
-    <appender-ref ref="asyncAUDIT"/>
-    <appender-ref ref="STDOUT"/>
-  </logger>
+
+  <if condition='property("logToFileEnabled").contains("true")'>
+    <then>
+      <logger name="org.onap.aai.aailog.filter.RestClientLoggingInterceptor" level="INFO">
+        <appender-ref ref="asyncMETRIC"/>
+      </logger>
+      <logger name="org.onap.logging.filter.base.AbstractMetricLogFilter" level="INFO">
+        <appender-ref ref="asyncMETRIC"/>
+      </logger>
+      <logger name="org.onap.aai.aailog.logs.AaiScheduledTaskAuditLog" level="INFO">
+        <appender-ref ref="asyncAUDIT"/>
+      </logger>
+      <logger name="org.onap.aai.aailog.logs.AaiDBMetricLog" level="INFO">
+        <appender-ref ref="asyncMETRIC"/>
+      </logger>
+      <logger name="org.onap.aai.logging.ErrorLogHelper" level="WARN">
+        <appender-ref ref="asyncERROR"/>
+      </logger>
+    </then>
+  </if>
+
   <logger name="org.onap.logging.filter.base.AbstractAuditLogFilter" level="INFO">
-    <appender-ref ref="asyncAUDIT"/>
-    <appender-ref ref="STDOUT"/>
-  </logger>
-  <logger name="org.onap.aai.aailog.logs.AaiDBMetricLog" level="INFO">
-    <appender-ref ref="asyncMETRIC"/>
-    <appender-ref ref="STDOUT"/>
-  </logger>
-  <logger name="org.onap.aai.logging.ErrorLogHelper" level="WARN">
-    <appender-ref ref="asyncERROR"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="asyncAUDIT"/>
+      </then>
+    </if>
     <appender-ref ref="STDOUT"/>
   </logger>
   <logger name="org.onap.aai.interceptors.post" level="DEBUG" additivity="false">
-    <appender-ref ref="asynctranslog"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="asynctranslog"/>
+      </then>
+    </if>
     <appender-ref ref="STDOUT"/>
   </logger>
   <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false">
-    <appender-ref ref="dmaapAAIEventConsumer"/>
-    <appender-ref ref="dmaapAAIEventConsumerDebug"/>
-    <appender-ref ref="dmaapAAIEventConsumerMetric"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="dmaapAAIEventConsumer"/>
+        <appender-ref ref="dmaapAAIEventConsumerDebug"/>
+        <appender-ref ref="dmaapAAIEventConsumerMetric"/>
+      </then>
+    </if>
     <appender-ref ref="STDOUT"/>
   </logger>
   <logger name="org.onap.aai.datasnapshot" level="DEBUG" additivity="false">
-    <appender-ref ref="dataSnapshot"/>
-    <appender-ref ref="dataSnapshotdebug"/>
-    <appender-ref ref="dataSnapshotaudit"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="dataSnapshot"/>
+        <appender-ref ref="dataSnapshotdebug"/>
+        <appender-ref ref="dataSnapshotaudit"/>
+      </then>
+    </if>
     <appender-ref ref="STDOUT"/>
   </logger>
   <logger name="org.onap.aai.historytruncate" level="DEBUG" additivity="false">
-    <appender-ref ref="historyTruncate"/>
-    <appender-ref ref="historyTruncatedebug"/>
-    <appender-ref ref="historyTruncateaudit"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="historyTruncate"/>
+        <appender-ref ref="historyTruncatedebug"/>
+        <appender-ref ref="historyTruncateaudit"/>
+      </then>
+    </if>
+    <appender-ref ref="STDOUT"/>
   </logger>
   <logger name="org.onap.aai.datagrooming" level="DEBUG" additivity="false">
-    <appender-ref ref="dataGrooming"/>
-    <appender-ref ref="dataGroomingdebug"/>
-    <appender-ref ref="dataGroomingaudit"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="dataGrooming"/>
+        <appender-ref ref="dataGroomingdebug"/>
+        <appender-ref ref="dataGroomingaudit"/>
+      </then>
+    </if>
     <appender-ref ref="STDOUT"/>
   </logger>
   <logger name="org.onap.aai.schema" level="DEBUG" additivity="false">
-    <appender-ref ref="createDBSchema"/>
-    <appender-ref ref="createDBSchemadebug"/>
-    <appender-ref ref="createDBSchemametric"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="createDBSchema"/>
+        <appender-ref ref="createDBSchemadebug"/>
+        <appender-ref ref="createDBSchemametric"/>
+      </then>
+    </if>
+    <appender-ref ref="STDOUT"/>
   </logger>
   <logger name="org.onap.aai.dbgen.DupeTool" level="DEBUG" additivity="false">
-    <appender-ref ref="dupeTooldebug"/>
-    <appender-ref ref="dupeToolerror"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="dupeTooldebug"/>
+        <appender-ref ref="dupeToolerror"/>
+      </then>
+    </if>
+    <appender-ref ref="STDOUT"/>
   </logger>
   <logger name="org.onap.aai.dbgen.DynamicPayloadGenerator" level="DEBUG" additivity="false">
-    <appender-ref ref="dynamicPayloadGeneratorAudit"/>
-    <appender-ref ref="dynamicPayloadGeneratorError"/>
-    <appender-ref ref="dynamicPayloadGeneratorDebug"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="dynamicPayloadGeneratorAudit"/>
+        <appender-ref ref="dynamicPayloadGeneratorError"/>
+        <appender-ref ref="dynamicPayloadGeneratorDebug"/>
+      </then>
+    </if>
+    <appender-ref ref="STDOUT"/>
   </logger>
   <logger name="org.onap.aai.dbgen" level="DEBUG" additivity="false">
-    <appender-ref ref="createDBSchema"/>
-    <appender-ref ref="createDBSchemadebug"/>
-    <appender-ref ref="createDBSchemametric"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="createDBSchema"/>
+        <appender-ref ref="createDBSchemadebug"/>
+        <appender-ref ref="createDBSchemametric"/>
+      </then>
+    </if>
+    <appender-ref ref="STDOUT"/>
   </logger>
   <logger name="org.onap.aai.datacleanup" level="DEBUG" additivity="false">
-    <appender-ref ref="dataCleanuperror"/>
-    <appender-ref ref="dataCleanupdebug"/>
-    <appender-ref ref="dataCleanupaudit"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="dataCleanuperror"/>
+        <appender-ref ref="dataCleanupdebug"/>
+        <appender-ref ref="dataCleanupaudit"/>
+      </then>
+    </if>
     <appender-ref ref="STDOUT"/>
   </logger>
   <logger name="org.onap.aai.migration" level="DEBUG" additivity="false">
-    <appender-ref ref="migrationdebug"/>
-    <appender-ref ref="migrationerror"/>
-  </logger>
-  <logger name="org.onap.aai.util.SendMigrationNotifications" level="DEBUG" additivity="false">
-    <appender-ref ref="migrationdebug"/>
-    <appender-ref ref="migrationerror"/>
-  </logger>
-  <logger name="org.onap.aai.util.SendDeleteMigrationNotifications" level="DEBUG" additivity="false">
-    <appender-ref ref="migrationdebug"/>
-    <appender-ref ref="migrationerror"/>
-  </logger>
-  <logger name="org.onap.aai.dataexport" level="DEBUG" additivity="false">
-    <appender-ref ref="dataExportError"/>
-    <appender-ref ref="dataExportDebug"/>
-    <appender-ref ref="dataExportAudit"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="migrationdebug"/>
+        <appender-ref ref="migrationerror"/>
+      </then>
+    </if>
     <appender-ref ref="STDOUT"/>
   </logger>
+  <logger name="org.onap.aai.util.SendMigrationNotifications" level="DEBUG" additivity="false">
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="migrationdebug"/>
+        <appender-ref ref="migrationerror"/>
+      </then>
+    </if>
+    <appender-ref ref="STDOUT"/>
+  </logger>
+  <logger name="org.onap.aai.util.SendDeleteMigrationNotifications" level="DEBUG" additivity="false">
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="migrationdebug"/>
+        <appender-ref ref="migrationerror"/>
+      </then>
+    </if>
+    <appender-ref ref="STDOUT"/>
+  </logger>
+  <logger name="org.onap.aai.dataexport" level="DEBUG" additivity="false">
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="dataExportError"/>
+        <appender-ref ref="dataExportDebug"/>
+      </then>
+    </if>
+    <appender-ref ref="STDOUT"/>
+  </logger>
+  <if condition='property("logToFileEnabled").contains("true")'>
+    <then>
+      <logger name="org.onap.aai.dataexport" level="DEBUG" additivity="false">
+        <appender-ref ref="dataExportAudit"/>
+      </logger>
+    </then>
+  </if>
   <logger name="org.apache" level="WARN"/>
   <logger name="org.zookeeper" level="WARN"/>
   <logger name="com.netflix" level="WARN"/>
@@ -944,13 +1176,21 @@
   <!-- General EELF logger -->
   <!-- ============================================================================ -->
   <logger name="com.att.eelf" level="WARN" additivity="false">
-    <appender-ref ref="asyncDEBUG"/>
-    <appender-ref ref="asyncERROR"/>
-    <appender-ref ref="asyncMETRIC"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="asyncDEBUG"/>
+        <appender-ref ref="asyncERROR"/>
+        <appender-ref ref="asyncMETRIC"/>
+      </then>
+    </if>
     <appender-ref ref="STDOUT"/>
   </logger>
   <root level="DEBUG">
-    <appender-ref ref="external"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="external"/>
+      </then>
+    </if>
     <appender-ref ref="STDOUT"/>
   </root>
 </configuration>