[AAI] AAI logstructure and aai resources healthcheck enhancement 96/132396/14 jakarta
authorleila <leila.nishimwe@bell.ca>
Thu, 10 Nov 2022 19:27:16 +0000 (14:27 -0500)
committerleila <leila.nishimwe@bell.ca>
Mon, 30 Jan 2023 16:01:54 +0000 (11:01 -0500)
AAI Traversal logging structure enhancement and image update
AAI Graphadmin logging structure and image update
AAI Resources logging structure and image update
AAI Resources healthcheck based on cassandra DB healthcheck
AAI Resources latency metrics configurations
AAI Images updated with 1.10.1
Correct link for honolulu release note file

Issue-ID: AAI-3606
Signed-off-by: leila <leila.nishimwe@bell.ca>
Change-Id: I0aa21a463a85bff0407df6c6793baba53d1da3b1

13 files changed:
docs/release_notes/release-notes-honolulu.rst
kubernetes/aai/components/aai-graphadmin/resources/config/localhost-access-logback.xml
kubernetes/aai/components/aai-graphadmin/resources/config/logback.xml
kubernetes/aai/components/aai-graphadmin/values.yaml
kubernetes/aai/components/aai-resources/resources/config/aaiconfig.properties
kubernetes/aai/components/aai-resources/resources/config/application.properties
kubernetes/aai/components/aai-resources/resources/config/localhost-access-logback.xml
kubernetes/aai/components/aai-resources/resources/config/logback.xml
kubernetes/aai/components/aai-resources/templates/deployment.yaml
kubernetes/aai/components/aai-resources/values.yaml
kubernetes/aai/components/aai-traversal/resources/config/localhost-access-logback.xml
kubernetes/aai/components/aai-traversal/resources/config/logback.xml
kubernetes/aai/components/aai-traversal/values.yaml

index bf91a44..86ba9be 100644 (file)
@@ -135,7 +135,7 @@ Known Vulnerabilities
 Workarounds
 -----------
 
-- `<https://github.com/bitnami/bitnami-docker-mariadb-galera/issues/35>`_
+- `<https://github.com/bitnami/charts/issues>`_
   Workaround is to generate a password with "short" strength or pregenerate
   passwords without single quote in it. Default deployment is using "short"
   password generation for mariadb.
index 449ea30..8e1bf21 100644 (file)
     ============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>
 
 <!--
index 243acd2..fd79f70 100644 (file)
   <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"/>
   <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
   <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
   <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
+
   <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-    <encoder>
-      <pattern>
-                %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
-      </pattern>
-    </encoder>
-  </appender>
-  <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <file>${logDirectory}/rest/sane.log</file>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n</pattern>
-    </encoder>
-  </appender>
-  <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
-    <queueSize>1000</queueSize>
-    <includeCallerData>true</includeCallerData>
-    <appender-ref ref="SANE"/>
-  </appender>
-  <appender name="METRIC" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <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}
-            </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 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="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>${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}
+
+  <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>${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}
+            <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>
-  <!-- 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 -->
   <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"/>
-    <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"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="asyncAUTH"/>
+      </then>
+    </if>
     <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"/>
+    <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">
-    <appender-ref ref="migrationdebug"/>
-    <appender-ref ref="migrationerror"/>
+    <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">
-    <appender-ref ref="migrationdebug"/>
-    <appender-ref ref="migrationerror"/>
+    <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">
-    <appender-ref ref="dataExportError"/>
-    <appender-ref ref="dataExportDebug"/>
-    <appender-ref ref="dataExportAudit"/>
+    <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"/>
   <!-- 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>
index d56a1e2..656c6e0 100644 (file)
@@ -144,7 +144,7 @@ certInitializer:
     chown -R {{ .Values.user_id }}:{{ .Values.group_id }} {{ .Values.credsPath }}
 
 # application image
-image: onap/aai-graphadmin:1.9.5
+image: onap/aai-graphadmin:1.10.1
 pullPolicy: Always
 restartPolicy: Always
 flavor: small
@@ -269,6 +269,18 @@ persistence:
   mountSubPath: aai/aai-graphadmin
   mountSubPath1: aai/migration
 
+# To make logback capping values configurable
+logback:
+  logToFileEnabled: true
+  maxHistory: 7
+  totalSizeCap: 6GB
+  queueSize: 1000
+
+accessLogback:
+  logToFileEnabled: true
+  maxHistory: 7
+  totalSizeCap: 6GB
+
 resources:
   small:
     limits:
index 2e6fd25..a569b53 100644 (file)
@@ -97,3 +97,16 @@ aai.bulkconsumer.payloadlimit={{ .Values.config.bulk.limit }}
 
 #uncomment and use header X-OverrideLimit with the value to override the bulk api limit
 aai.bulkconsumer.payloadoverride={{ .Values.config.bulk.override }}
+
+#
+# AAI Graph DB checker task
+#
+
+# Indicator to enable or disable scheduled task (true/false)
+aai.graph.checker.task.enabled=true
+
+# Delay, in seconds, before the scheduled task is started, if enabled
+aai.graph.checker.task.delay=5
+
+# Period, in seconds, between two consecutive executions of the scheduled task, if enabled
+aai.graph.checker.task.period=10
\ No newline at end of file
index 3f33d71..95e5a45 100644 (file)
@@ -120,4 +120,3 @@ management.metrics.distribution.sla[http.server.requests]=20ms, 30ms, 40ms, 50ms
 management.metrics.tags.group_id=aai
 #It is not advisable to use labels to store dimensions with high cardinality. Enable this option only for debug purposes. For more information: https://github.com/micrometer-metrics/micrometer/issues/1584
 scrape.uri.metrics=false
-
index f5829a1..5ddd293 100644 (file)
 */}}\r
 <configuration>\r
   <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />\r
-  <appender name="ACCESS"\r
-      class="ch.qos.logback.core.rolling.RollingFileAppender">\r
-    <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file>\r
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
-      <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd}\r
-      </fileNamePattern>\r
-    </rollingPolicy>\r
+\r
+  <property name="logToFileEnabled" value='{{.Values.accessLogback.logToFileEnabled}}'/>\r
+  <property name="maxHistory" value='{{.Values.accessLogback.maxHistory}}' />\r
+  <property name="totalSizeCap" value='{{.Values.accessLogback.totalSizeCap}}' />\r
+\r
+  <if condition='property("logToFileEnabled").contains("true")'>\r
+    <then>\r
+      <appender name="ACCESS"\r
+                class="ch.qos.logback.core.rolling.RollingFileAppender">\r
+        <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file>\r
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
+          <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd}.zip\r
+          </fileNamePattern>\r
+          <maxHistory>${maxHistory}</maxHistory>\r
+          <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
+        </rollingPolicy>\r
+        <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder">\r
+          <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>\r
+        </encoder>\r
+      </appender>\r
+      <appender-ref ref="ACCESS"/>\r
+    </then>\r
+  </if>\r
+\r
+  <appender name="STDOUTACCESS" class="ch.qos.logback.core.ConsoleAppender">\r
     <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder">\r
-      <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>\r
+      <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>\r
     </encoder>\r
   </appender>\r
-  <appender-ref ref="ACCESS" />\r
+\r
+  <appender-ref ref="STDOUTACCESS" />\r
+\r
 </configuration>\r
 {{/*\r
 <!--\r
index 287b59f..b523185 100644 (file)
 
   <property resource="application.properties" />
 
+  <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}}'/>
+
   <property name="namespace" value="aai-resources"/>
 
   <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
   <property name="metricPattern" value="%X{InvokeTimestamp}|%X{LogTimestamp}|%X{RequestID}|%X{ServiceInstanceID}|%thread||%replace(%X{ServiceName}){'\\|', '!'}|%X{PartnerName}|%X{TargetEntity}|%replace(%X{TargetServiceName}){'\\|', '!'}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|${p_mak}|${p_mdc}|||%msg%n" />
   <property name="transLogPattern" value="%X{LogTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{RequestID}|%X{ServiceInstanceID}|%-10t|%X{ServerFQDN}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%replace(%replace(%X{ResponseDesc}){'\\|', '!'}){'\r|\n', '^'}|%X{InstanceUUID}|%level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{clientIpAddress}||%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{PartnerName}:%m%n"/>
   <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
-    <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
-    <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
-  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-    <encoder>
-      <pattern>
-        %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
-      </pattern>
-    </encoder>
-  </appender>
+  <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
+  <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
 
-  <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>
+  <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}.zip</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>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="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}.zip</fileNamePattern>
+          <maxHistory>${maxHistory}</maxHistory>
+          <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </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="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>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${debugPattern}</pattern>
-    </encoder>
-  </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}.zip</fileNamePattern>
+          <maxHistory>${maxHistory}</maxHistory>
+          <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </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="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}.zip</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>1000</queueSize>
-    <appender-ref ref="ERROR"/>
-  </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>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${auditPattern}</pattern>
-    </encoder>
-  </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}.zip
+          </fileNamePattern>
+          <maxHistory>${maxHistory}</maxHistory>
+          <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </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="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>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${transLogPattern}</pattern>
-    </encoder>
-  </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}.zip
+          </fileNamePattern>
+          <maxHistory>${maxHistory}</maxHistory>
+          <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </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="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>
-    </rollingPolicy>
-    <encoder>
-      <pattern>${errorPattern}</pattern>
-    </encoder>
+      <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}.zip
+          </fileNamePattern>
+          <maxHistory>${maxHistory}</maxHistory>
+          <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+          <pattern>${errorPattern}</pattern>
+        </encoder>
 
-  </appender>
+      </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="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="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>
-  <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>
+      <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}.zip
+          </fileNamePattern>
+          <maxHistory>${maxHistory}</maxHistory>
+          <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+          <pattern>${debugPattern}</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}.zip
+          </fileNamePattern>
+          <maxHistory>${maxHistory}</maxHistory>
+          <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+          <pattern>${auditPattern}</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}.zip
+          </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}.zip
+          </fileNamePattern>
+          <maxHistory>${maxHistory}</maxHistory>
+          <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+          <pattern>${debugPattern}</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}.zip
+          </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>
+
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <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="asyncAUTH" class="ch.qos.logback.classic.AsyncAppender">
-    <queueSize>1000</queueSize>
-    <includeCallerData>true</includeCallerData>
-    <appender-ref ref="auth" />
-  </appender>
+
   <!-- logback internals logging -->
 
   <logger name="ch.qos.logback.classic" level="WARN" />
 
 
   <logger name="org.onap.aai" level="DEBUG" additivity="false">
-    <appender-ref ref="asyncDEBUG" />
-    <appender-ref ref="asyncSANE" />
-    <appender-ref ref="STDOUT" />
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="asyncDEBUG"/>
+        <appender-ref ref="asyncSANE"/>
+      </then>
+    </if>
+    <appender-ref ref="STDOUT"/>
   </logger>
   <logger name="org.onap.aai.aaf.auth" level="DEBUG" additivity="false">
-    <appender-ref ref="asyncAUTH" />
-    <appender-ref ref="STDOUT" />
-  </logger>
-  <logger name="org.onap.aai.aailog.logs.AaiScheduledTaskAuditLog" level="INFO">
-    <appender-ref ref="asyncAUDIT"/>
-  </logger>
-  <logger name="org.onap.logging.filter.base.AbstractAuditLogFilter" 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.aailog.logs.AaiDmaapMetricLog" level="INFO">
-    <appender-ref ref="dmaapAAIEventConsumerMetric"/>
-  </logger>
-  <logger name="org.onap.aai.logging.ErrorLogHelper" level="WARN">
-    <appender-ref ref="asyncERROR"/>
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="asyncAUTH"/>
+      </then>
+    </if>
+    <appender-ref ref="STDOUT"/>
   </logger>
+
+  <if condition='property("logToFileEnabled").contains("true")'>
+    <then>
+      <!-- These loggers are not additive and will be redirected to the parent logger.
+        Sending events to log is handled by parent loggers-->
+      <logger name="org.onap.aai.aailog.logs.AaiScheduledTaskAuditLog" level="INFO">
+        <appender-ref ref="asyncAUDIT"/>
+      </logger>
+      <logger name="org.onap.logging.filter.base.AbstractAuditLogFilter" 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.aailog.logs.AaiDmaapMetricLog" level="INFO">
+        <appender-ref ref="dmaapAAIEventConsumerMetric"/>
+      </logger>
+      <logger name="org.onap.aai.logging.ErrorLogHelper" level="WARN">
+        <appender-ref ref="asyncERROR"/>
+      </logger>
+      <logger name="com.att.nsa.mr" level="INFO">
+        <appender-ref ref="dmaapAAIEventConsumerInfo"/>
+      </logger>
+    </then>
+  </if>
+
   <logger name="org.onap.aai.interceptors.post" level="DEBUG" additivity="false">
-    <appender-ref ref="asynctranslog" />
-    <appender-ref ref="STDOUT" />
+    <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" />
-  </logger>
-
-  <logger name="com.att.nsa.mr" level="INFO" >
-    <appender-ref ref="dmaapAAIEventConsumerInfo" />
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="dmaapAAIEventConsumer"/>
+        <appender-ref ref="dmaapAAIEventConsumerDebug"/>
+      </then>
+    </if>
+    <appender-ref ref="STDOUT"/>
   </logger>
 
   <root level="DEBUG">
-    <appender-ref ref="external" />
-    <appender-ref ref="STDOUT" />
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="external"/>
+      </then>
+    </if>
+    <appender-ref ref="STDOUT"/>
   </root>
-</configuration>
+</configuration>
\ No newline at end of file
index b5e89aa..33aa971 100644 (file)
@@ -203,14 +203,32 @@ spec:
         # so K8s doesn't restart unresponsive container
         {{- if .Values.liveness.enabled }}
         livenessProbe:
-          tcpSocket:
+          httpGet:
+            path: /aai/util/echo?action=checkDB
             port: {{ .Values.service.internalPort }}
+            scheme: HTTP{{ (eq "true" (include "common.needTLS" .)) | ternary "S" "" }}
+            httpHeaders:
+            - name: X-FromAppId
+              value: LivenessCheck
+            - name: X-TransactionId
+              value: LiveCheck_TID
+            - name: Accept
+              value: application/json
           initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
           periodSeconds: {{ .Values.liveness.periodSeconds }}
         {{- end }}
         readinessProbe:
-          tcpSocket:
+          httpGet:
+            path: /aai/util/echo?action=checkDB
             port: {{ .Values.service.internalPort }}
+            scheme: HTTP{{ (eq "true" (include "common.needTLS" .)) | ternary "S" "" }}
+            httpHeaders:
+            - name: X-FromAppId
+              value: ReadinessCheck
+            - name: X-TransactionId
+              value: ReadinessCheck_TID
+            - name: Accept
+              value: application/json
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
         resources: {{ include "common.resources" . | nindent 12 }}
index df88442..eec1269 100644 (file)
@@ -157,7 +157,7 @@ certInitializer:
     chown -R 1000 {{ .Values.credsPath }}
 
 # application image
-image: onap/aai-resources:1.9.5
+image: onap/aai-resources:1.10.1
 pullPolicy: Always
 restartPolicy: Always
 flavor: small
@@ -335,3 +335,15 @@ serviceAccount:
 log:
   path: /var/log/onap
 logConfigMapNamePrefix: '{{ include "common.fullname" . }}'
+
+# To make logback capping values configurable
+logback:
+  logToFileEnabled: true
+  maxHistory: 7
+  totalSizeCap: 1GB
+  queueSize: 1000
+
+accessLogback:
+  logToFileEnabled: true
+  maxHistory: 7
+  totalSizeCap: 1GB
index b801a7a..1d32a52 100644 (file)
     limitations under the License.\r
     ============LICENSE_END=========================================================\r
 -->\r
-*/}}<configuration>\r
+*/}}\r
+<configuration scan="true" scanPeriod="60 seconds" debug="false">\r
     <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />\r
-    <appender name="ACCESS" class="ch.qos.logback.core.rolling.RollingFileAppender">\r
-        <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file>\r
-        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
-            <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd}\r
-</fileNamePattern>\r
-        </rollingPolicy>\r
+    <property name="maxHistory" value='{{.Values.accessLogback.maxHistory}}' />\r
+    <property name="totalSizeCap" value='{{.Values.accessLogback.totalSizeCap}}' />\r
+    <property name="logToFileEnabled" value='{{.Values.accessLogback.logToFileEnabled}}'/>\r
+\r
+    <if condition='property("logToFileEnabled").contains("true")'>\r
+        <then>\r
+            <appender name="ACCESS" class="ch.qos.logback.core.rolling.RollingFileAppender">\r
+                <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file>\r
+                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">\r
+                    <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd}\r
+                    </fileNamePattern>\r
+                    <maxHistory>${maxHistory}</maxHistory>\r
+                    <totalSizeCap>${totalSizeCap}</totalSizeCap>\r
+                </rollingPolicy>\r
+                <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder">\r
+                    <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>\r
+                </encoder>\r
+            </appender>\r
+            <appender-ref ref="ACCESS" />\r
+        </then>\r
+    </if>\r
+\r
+    <appender name="STDOUTACCESS" class="ch.qos.logback.core.ConsoleAppender">\r
         <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder">\r
-            <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>\r
+            <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>\r
         </encoder>\r
     </appender>\r
-    <appender-ref ref="ACCESS" />\r
-</configuration>{{/*<!--\r
+    <appender-ref ref="STDOUTACCESS" />\r
+</configuration>\r
+{{/*<!--\r
 %a - Remote IP address\r
 %A - Local IP address\r
 %b - Bytes sent, excluding HTTP headers, or '-' if no bytes were sent\r
index ca9d35b..3dc4867 100644 (file)
     limitations under the License.
     ============LICENSE_END=========================================================
 -->
-*/}}<configuration scan="true" scanPeriod="60 seconds" debug="false">
+*/}}
+<configuration scan="true" scanPeriod="60 seconds" debug="false">
   <statusListener class="ch.qos.logback.core.status.NopStatusListener" />
 
   <property resource="application.properties" />
 
-  <property name="namespace" value="aai-resources" />
+  <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}}'/>
+
+  <property name="namespace" value="aai-traversal" />
 
   <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
   <jmxConfigurator />
   <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
   <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
   <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
-  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-    <encoder>
-      <pattern>
-                %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
-</pattern>
-    </encoder>
-  </appender>
-
-  <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <file>${logDirectory}/rest/sane.log</file>
-    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-      <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern>
-    </rollingPolicy>
-    <encoder>
-      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
-</pattern>
-    </encoder>
-  </appender>
-
-  <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
-    <queueSize>1000</queueSize>
-    <includeCallerData>true</includeCallerData>
-    <appender-ref ref="SANE" />
-  </appender>
-  <appender name="METRIC" class="ch.qos.logback.core.rolling.RollingFileAppender">
-    <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}
-</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>
+  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+    <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="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
-    <queueSize>1000</queueSize>
-    <includeCallerData>true</includeCallerData>
-    <appender-ref ref="translog" />
-  </appender>
+  <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="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="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>
+          <maxHistory>${maxHistory}</maxHistory>
+          <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+          <pattern>${auditPattern}</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>
+          <maxHistory>${maxHistory}</maxHistory>
+          <totalSizeCap>${totalSizeCap}</totalSizeCap>
+        </rollingPolicy>
+        <encoder>
+          <pattern>${debugPattern}</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>
 
-  <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="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="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="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>
-  <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>
   <!-- logback internals logging -->
-
   <logger name="ch.qos.logback.classic" level="WARN" />
   <logger name="ch.qos.logback.core" level="WARN" />
 
 
 
   <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>
+
   <logger name="org.onap.aai.aaf.auth" 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.logs.AaiScheduledTaskAuditLog" level="INFO">
-    <appender-ref ref="asyncAUDIT" />
+
+  <logger name="org.onap.aai.aailog.logs.AaiScheduledTaskAuditLog" level="INFO" additivity="false">
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="asyncAUDIT" />
+      </then>
+    </if>
+    <appender-ref ref="STDOUT" />
   </logger>
-  <logger name="org.onap.logging.filter.base.AbstractAuditLogFilter" level="INFO">
-    <appender-ref ref="asyncAUDIT" />
+
+  <logger name="org.onap.logging.filter.base.AbstractAuditLogFilter" level="INFO" additivity="false">
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="asyncAUDIT" />
+      </then>
+    </if>
+    <appender-ref ref="STDOUT" />
   </logger>
-  <logger name="org.onap.aai.aailog.logs.AaiDBMetricLog" level="INFO">
-    <appender-ref ref="asyncMETRIC" />
+
+  <logger name="org.onap.aai.aailog.logs.AaiDBMetricLog" level="INFO" additivity="false">
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="asyncMETRIC" />
+      </then>
+    </if>
+    <appender-ref ref="STDOUT" />
   </logger>
-  <logger name="org.onap.aai.aailog.logs.AaiDmaapMetricLog" level="INFO">
-    <appender-ref ref="dmaapAAIEventConsumerMetric" />
+
+  <logger name="org.onap.aai.aailog.logs.AaiDmaapMetricLog" level="INFO" additivity="false">
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="dmaapAAIEventConsumerMetric" />
+      </then>
+    </if>
+    <appender-ref ref="STDOUT" />
   </logger>
-  <logger name="org.onap.aai.logging.ErrorLogHelper" level="WARN">
-    <appender-ref ref="asyncERROR" />
+
+  <logger name="org.onap.aai.logging.ErrorLogHelper" level="WARN" additivity="false">
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="asyncERROR" />
+      </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" />
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="dmaapAAIEventConsumer" />
+        <appender-ref ref="dmaapAAIEventConsumerDebug" />
+      </then>
+    </if>
+    <appender-ref ref="STDOUT" />
   </logger>
 
   <logger name="com.att.nsa.mr" level="INFO">
-    <appender-ref ref="dmaapAAIEventConsumerInfo" />
+    <if condition='property("logToFileEnabled").contains("true")'>
+      <then>
+        <appender-ref ref="dmaapAAIEventConsumerInfo" />
+      </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>
\ No newline at end of file
index f6ed17a..7e38dcf 100644 (file)
@@ -140,7 +140,7 @@ certInitializer:
     chown -R 1000 {{ .Values.credsPath }}
 
 # application image
-image: onap/aai-traversal:1.9.5
+image: onap/aai-traversal:1.10.1
 pullPolicy: Always
 restartPolicy: Always
 flavor: small
@@ -267,6 +267,18 @@ service:
 ingress:
   enabled: false
 
+# To make logback capping values configurable
+logback:
+  logToFileEnabled: true
+  maxHistory: 7
+  totalSizeCap: 6GB
+  queueSize: 1000
+
+accessLogback:
+  logToFileEnabled: true
+  maxHistory: 7
+  totalSizeCap: 6GB
+
 # Configure resource requests and limits
 # ref: http://kubernetes.io/docs/user-guide/compute-resources/
 resources: