Updated logback to support Json log format in AAI-Graphadmin HTTP logs & ModelLoader 22/140722/1
authorAditi Shukla <aditi.shukla@t-systems.com>
Tue, 13 May 2025 07:57:20 +0000 (13:27 +0530)
committerAditi Shukla <aditi.shukla@t-systems.com>
Tue, 13 May 2025 07:57:26 +0000 (13:27 +0530)
Issue-ID: OOM-3339
Change-Id: I247a90da56f49c37d303c386966fb3299c4b5b79
Signed-off-by: Aditi Shukla <aditi.shukla@t-systems.com>
kubernetes/aai/components/aai-graphadmin/resources/config/localhost-access-logback.xml
kubernetes/aai/components/aai-modelloader/resources/config/log/logback.xml

index 8e1bf21..cc9602c 100644 (file)
@@ -20,6 +20,7 @@
 */}}
 -->
 <configuration scan="true" scanPeriod="60 seconds" debug="false">
+    <statusListener class="ch.qos.logback.core.status.NopStatusListener"/>
     <property name="AJSC_HOME" value="${AJSC_HOME:-.}" />
     <property name="maxHistory" value='{{.Values.accessLogback.maxHistory}}' />
     <property name="totalSizeCap" value='{{.Values.accessLogback.totalSizeCap}}' />
     </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 - "logType": "access"</Pattern>
+        <encoder class="net.logstash.logback.encoder.AccessEventCompositeJsonEncoder">
+            <providers>
+                <pattern>
+                    <pattern>
+                        {
+                            "remoteIp": "%a",
+                            "remoteUser": "%u",
+                            "timestamp": "%t",
+                            "requestMethod": "%m",
+                            "requestUrl": "%U",
+                            "queryString": "%q",
+                            "httpStatusCode": "%s",
+                            "bytesSent": "%b",
+                            "transactionId": "%i{X-TransactionId}",
+                            "fromAppId": "%i{X-FromAppId}",
+                            "forwardedFor": "%i{X-Forwarded-For}",
+                            "aaiSslClientCn": "%i{X-AAI-SSL-Client-CN}",
+                            "aaiSslClientOu": "%i{X-AAI-SSL-Client-OU}",
+                            "aaiSslClientO": "%i{X-AAI-SSL-Client-O}",
+                            "aaiSslClientL": "%i{X-AAI-SSL-Client-L}",
+                            "aaiSslClientSt": "%i{X-AAI-SSL-Client-ST}",
+                            "aaiSslClientC": "%i{X-AAI-SSL-Client-C}",
+                            "aaiSslClientNotBefore": "%i{X-AAI-SSL-Client-NotBefore}",
+                            "aaiSslClientNotAfter": "%i{X-AAI-SSL-Client-NotAfter}",
+                            "aaiSslClientDn": "%i{X-AAI-SSL-Client-DN}",
+                            "durationMs": "%D",
+                            "logType": "access"
+                        }
+                    </pattern>
+                </pattern>
+            </providers>
         </encoder>
     </appender>
     <appender-ref ref="STDOUTACCESS" />
index 90579b0..909e036 100644 (file)
@@ -17,7 +17,6 @@
 -->
 */}}
 <configuration scan="true" scanPeriod="3 seconds" debug="false">
-  <include resource="org/springframework/boot/logging/logback/base.xml" />
   <property name="logDir" value="/var/log/onap" />
   <property name="componentName" value="AAI-ML"></property>
 
 
   <property name="logDirectory" value="${logDir}/${componentName}" />
 
-  <!-- Example evaluator filter applied against console appender -->
   <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
-    <encoder>
-      <pattern>${errorLogPattern}</pattern>
+    <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
+      <providers>
+        <timestamp><fieldName>timestamp</fieldName></timestamp>
+        <message/>
+        <mdc>
+          <fieldName>context</fieldName>
+          <includeMdcKeyName>RequestId</includeMdcKeyName>
+          <includeMdcKeyName>PartnerName</includeMdcKeyName>
+        </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", "app":"ModelLoader"}</pattern>
+        </pattern>
+      </providers>
     </encoder>
   </appender>
   <appender name="AsyncSysOut" class="ch.qos.logback.classic.AsyncAppender">