AAI graphadmin logging structure enhancement 80/131980/1
authorleila <leila.nishimwe@bell.ca>
Fri, 4 Nov 2022 23:16:52 +0000 (19:16 -0400)
committerWilliam Reehil <william.reehil@att.com>
Tue, 8 Nov 2022 19:07:49 +0000 (19:07 +0000)
enhancement for logback and localhost xml files logging structure

Issue-ID: AAI-3581

Signed-off-by: leila <leila.nishimwe@bell.ca>
Change-Id: Iefdada964d352a0ff6554673eb45ef08aa0b70b1
(cherry picked from commit c0923c83ed18db3b072a775076a51dc53eeb2791)

pom.xml
src/main/resources/localhost-access-logback.xml
src/main/resources/logback.xml

diff --git a/pom.xml b/pom.xml
index 0436bf3..acfa577 100755 (executable)
--- a/pom.xml
+++ b/pom.xml
             <groupId>ch.qos.logback</groupId>
             <artifactId>logback-access</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.codehaus.janino</groupId>
+            <artifactId>janino</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>net.logstash.logback</groupId>
+            <artifactId>logstash-logback-encoder</artifactId>
+            <version>6.6</version>
+        </dependency>
         <!-- End of Logback Dependencies -->
         <dependency>
             <groupId>com.google.guava</groupId>
index a318796..6c89f23 100644 (file)
 -->
 <configuration>
        <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
+       <property name="maxHistory" value='7' />
+       <property name="totalSizeCap" value='1GB' />
        <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" />
+       <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 - "logType": "access"</Pattern>
+               </encoder>
+       </appender>
+       <appender-ref ref="STDOUTACCESS" />
 </configuration>
 
 <!-- 
index 7561f3f..26077b8 100644 (file)
 
        <property resource="application.properties" />
 
+       <property name="maxHistory" value='7' />
+       <property name="totalSizeCap" value='1GB' />
+       <property name="queueSize" value='1000'/>
+
        <property name="namespace" value="graph-admin"/>
 
        <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
     <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
     <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
     <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />
+
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-               <encoder>
-                       <pattern>
-                               %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
-                       </pattern>
+               <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
+                       <providers>
+                               <timestamp><fieldName>timestamp</fieldName></timestamp>
+                               <message/>
+                               <mdc>
+                                       <fieldName>context</fieldName>
+                                       <excludeMdcKeyName>ServerIPAddress</excludeMdcKeyName>
+                                       <excludeMdcKeyName>EntryTimestamp</excludeMdcKeyName>
+                                       <excludeMdcKeyName>InvokeTimestamp</excludeMdcKeyName>
+                                       <excludeMdcKeyName>ErrorCode</excludeMdcKeyName>
+                                       <excludeMdcKeyName>ErrorDesc</excludeMdcKeyName>
+                               </mdc>
+                               <stackTrace>
+                                       <fieldName>exception</fieldName>
+                                       <throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
+                                               <exclude>^sun\.reflect\..*\.invoke</exclude>
+                                               <exclude>^net\.sf\.cglib\.proxy\.MethodProxy\.invoke</exclude>
+                                               <rootCauseFirst>true</rootCauseFirst>
+                                       </throwableConverter>
+                               </stackTrace>
+                               <threadName><fieldName>thread</fieldName></threadName>
+                               <loggerName>
+                                       <fieldName>logger</fieldName>
+                                       <shortenedLoggerNameLength>36</shortenedLoggerNameLength>
+                               </loggerName>
+                               <logLevel/>
+                               <pattern>
+                                       <pattern>{"logType":"app"}</pattern>
+                               </pattern>
+                       </providers>
                </encoder>
        </appender>
 
                <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
        </appender>
 
        <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender">
-               <queueSize>1000</queueSize>
+               <queueSize>${queueSize}</queueSize>
                <includeCallerData>true</includeCallerData>
                <appender-ref ref="SANE" />
        </appender>
                                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>1000</queueSize>
+               <queueSize>${queueSize}</queueSize>
                <includeCallerData>true</includeCallerData>
                <appender-ref ref="METRIC"/>
        </appender>
                <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>
        </appender>
 
        <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender">
-               <queueSize>1000</queueSize>
+               <queueSize>${queueSize}</queueSize>
                <appender-ref ref="DEBUG" />
                <includeCallerData>true</includeCallerData>
        </appender>
                <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>
        </appender>
 
        <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender">
-               <queueSize>1000</queueSize>
+               <queueSize>${queueSize}</queueSize>
                <appender-ref ref="ERROR"/>
        </appender>
 
                <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>
        </appender>
 
        <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender">
-               <queueSize>1000</queueSize>
+               <queueSize>${queueSize}</queueSize>
                <includeCallerData>true</includeCallerData>
                <appender-ref ref="AUDIT" />
        </appender>
                <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>
        </appender>
        
        <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender">
-               <queueSize>1000</queueSize>
+               <queueSize>${queueSize}</queueSize>
                <includeCallerData>true</includeCallerData>
                <appender-ref ref="translog" />
        </appender>
                <file>${logDirectory}/failover/failover.log</file>
                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                        <fileNamePattern>${logDirectory}/failover/failover.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
        </appender>
 
        <appender name="asyncFailover" class="ch.qos.logback.classic.AsyncAppender">
-               <queueSize>1000</queueSize>
+               <queueSize>${queueSize}</queueSize>
                <includeCallerData>true</includeCallerData>
                <appender-ref ref="failover" />
        </appender>
                <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>
         <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>${debugPattern}</pattern>
                <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>
                <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>
                <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>
                <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>
                <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>
                <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>
                <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>
                <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>
                <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>
                <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>
                <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>
                <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>
                <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>
                <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>
                <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>
                <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>
                <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>
                <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>
                <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>
                </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>
+                       <fileNamePattern>${logDirectory}/dupeTool/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+                       <maxHistory>${maxHistory}</maxHistory>
+                       <totalSizeCap>${totalSizeCap}</totalSizeCap>
                </rollingPolicy>
                <encoder>
                        <pattern>${errorPattern}</pattern>
                <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>
                <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>
                <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>
                <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>
                </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>
+                       <fileNamePattern>${logDirectory}/forceDelete/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+                       <maxHistory>${maxHistory}</maxHistory>
+                       <totalSizeCap>${totalSizeCap}</totalSizeCap>
                </rollingPolicy>
                <encoder>
                        <pattern>${errorPattern}</pattern>
                <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>
                </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>
+                       <fileNamePattern>${logDirectory}/migration/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+                       <maxHistory>${maxHistory}</maxHistory>
+                       <totalSizeCap>${totalSizeCap}</totalSizeCap>
                </rollingPolicy>
                <encoder>
                        <pattern>${errorPattern}</pattern>
                                <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                                        <fileNamePattern>${logDirectory}/migration/${logFilenameAppender}.log.%d{yyyy-MM-dd}
                                        </fileNamePattern>
+                                       <maxHistory>${maxHistory}</maxHistory>
+                                       <totalSizeCap>${totalSizeCap}</totalSizeCap>
                                </rollingPolicy>
                                <encoder>
                                        <pattern>%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%m%n</pattern>
                <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>
                <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>
                <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>
                <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>
                </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>
+                       <fileNamePattern>${logDirectory}/schemaMod/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+                       <maxHistory>${maxHistory}</maxHistory>
+                       <totalSizeCap>${totalSizeCap}</totalSizeCap>
                </rollingPolicy>
                <encoder>
                        <pattern>${errorPattern}</pattern>
                <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>
                </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>
+                       <fileNamePattern>${logDirectory}/uniquePropertyCheck/metrics.log.%d{yyyy-MM-dd}</fileNamePattern>
+                       <maxHistory>${maxHistory}</maxHistory>
+                       <totalSizeCap>${totalSizeCap}</totalSizeCap>
                </rollingPolicy>
                <encoder>
                        <pattern>${metricPattern}</pattern>
                </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>
+                       <fileNamePattern>${logDirectory}/uniquePropertyCheck/error.log.%d{yyyy-MM-dd}</fileNamePattern>
+                       <maxHistory>${maxHistory}</maxHistory>
+                       <totalSizeCap>${totalSizeCap}</totalSizeCap>
                </rollingPolicy>
                <encoder>
                        <pattern>${errorPattern}</pattern>
                <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>
                <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>
                <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>
        <logger name="org.onap.aai" level="DEBUG" additivity="false">
                <appender-ref ref="asyncDEBUG" />
                <appender-ref ref="asyncSANE" />
+               <appender-ref ref="STDOUT"/>
        </logger>
 
        <!-- Spring related loggers -->
                <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>1000</queueSize>
+               <queueSize>${queueSize}</queueSize>
                <includeCallerData>true</includeCallerData>
                <appender-ref ref="auth" />
        </appender>     
        <logger name="AuditRecord" level="INFO" additivity="false">
                <appender-ref ref="auditLogs" />
+               <appender-ref ref="STDOUT"/>
        </logger>
        <logger name="AuditRecord_DirectCall" level="INFO" additivity="false">
                <appender-ref ref="auditLogs" />
+               <appender-ref ref="STDOUT"/>
        </logger>
        <logger name="PerfTrackerRecord" level="INFO" additivity="false">
                <appender-ref ref="perfLogs" />
+               <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"/>
        </logger>
        <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"/>
        </logger>
        <logger name="org.onap.aai.failover" level="DEBUG" additivity="false">
                <appender-ref ref="asyncFailover" />
+               <appender-ref ref="STDOUT"/>
        </logger>
        <logger name="org.onap.aai.interceptors.post" level="DEBUG" additivity="false">
                <appender-ref ref="asynctranslog" />
+               <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" />
+               <appender-ref ref="STDOUT"/>
        </logger>
 
        <logger name="org.onap.aai.datasnapshot" level="DEBUG" additivity="false">
                <appender-ref ref="historyTruncate"/>
                <appender-ref ref="historyTruncatedebug"/>
                <appender-ref ref="historyTruncateaudit"/>
+               <appender-ref ref="STDOUT"/>
        </logger>
 
        <logger name="org.onap.aai.datagrooming" level="DEBUG" additivity="false">
                <appender-ref ref="createDBSchema"/>
                <appender-ref ref="createDBSchemadebug"/>
                <appender-ref ref="createDBSchemametric"/>
+               <appender-ref ref="STDOUT"/>
        </logger>
        
        <logger name="org.onap.aai.dbgen.DupeTool" level="DEBUG" additivity="false">
                <appender-ref ref="dupeTooldebug" />
-               <appender-ref ref="dupeToolerror" />    
+               <appender-ref ref="dupeToolerror" />
+               <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" />     
+               <appender-ref ref="dynamicPayloadGeneratorDebug" />
+               <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"/>
+               <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" />
-       <appender-ref ref="STDOUT"/>
+               <appender-ref ref="dataCleanuperror" />
+               <appender-ref ref="dataCleanupdebug" />
+               <appender-ref ref="dataCleanupaudit" />
+               <appender-ref ref="STDOUT"/>
        </logger>
 
        <logger name="org.onap.aai.migration" level="DEBUG" additivity="false">
-       <appender-ref ref="migrationdebug" />
-       <appender-ref ref="migrationerror" />
+               <appender-ref ref="migrationdebug" />
+               <appender-ref ref="migrationerror" />
+               <appender-ref ref="STDOUT"/>
        </logger>
        
        <logger name="org.onap.aai.util.SendMigrationNotifications" level="DEBUG" additivity="false">
-       <appender-ref ref="migrationdebug" />
-       <appender-ref ref="migrationerror" />
+               <appender-ref ref="migrationdebug" />
+               <appender-ref ref="migrationerror" />
+               <appender-ref ref="STDOUT"/>
        </logger>
        
        <logger name="org.onap.aai.util.SendDeleteMigrationNotifications" level="DEBUG" additivity="false">
-       <appender-ref ref="migrationdebug" />
-       <appender-ref ref="migrationerror" />
+               <appender-ref ref="migrationdebug" />
+               <appender-ref ref="migrationerror" />
+               <appender-ref ref="STDOUT"/>
        </logger>
        
        <logger name="org.onap.aai.migration" level="ERROR" additivity="false">
                <appender-ref ref="migrationlog" />
+               <appender-ref ref="STDOUT"/>
        </logger>
        
        <logger name="org.onap.aai.migration" level="INFO" additivity="false">
                <appender-ref ref="migrationlog" />
+               <appender-ref ref="STDOUT"/>
        </logger>
        
                        
 
        <root level="DEBUG">
                <appender-ref ref="external" />
+               <appender-ref ref="STDOUT"/>
        </root>
 </configuration>