[AAI] Add logs to STDOUT
[aai/oom.git] / components / aai-babel / resources / config / logback.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3 # Copyright © 2018 Amdocs, Bell Canada, AT&T
4 # Modifications Copyright © 2020 Samsung Electronics
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 #       http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 -->
18 <!DOCTYPE xml>
19 <configuration scan="true" scanPeriod="30 seconds" debug="true">
20   <include resource="org/springframework/boot/logging/logback/base.xml" />
21
22   <property name="componentName" value="AAI-BAS" />
23   <property name="logDirectory" value="{{ .Values.log.logDir }}/${componentName}" />
24
25   <!-- default EELF log file names -->
26   <property name="generalLogName" value="error" />
27   <property name="metricsLogName" value="metrics" />
28   <property name="auditLogName" value="audit" />
29   <property name="debugLogName" value="debug" />
30
31   <property name="p_tim" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}"/>
32   <property name="p_lvl" value="%level"/>
33   <property name="p_log" value="%logger"/>
34   <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}"/>
35   <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>
36   <property name="p_thr" value="%thread"/>
37
38   <property name="errorLogPattern"
39             value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{RequestId}|%thread|%mdc{ServiceName}|%mdc{PartnerName}|%mdc{TargetEntity}|%mdc{TargetServiceName}|%.-5level|%logger|%mdc{ClassName}|%msg%n" />
40
41   <property name="auditLogPattern"
42             value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{BeginTimestamp}|%mdc{EndTimestamp}|%mdc{RequestId}|%mdc{ServiceInstanceId}|%thread|%mdc{ServerFQDN}|%mdc{ServiceName}|%mdc{PartnerName}|%mdc{StatusCode}|%mdc{ResponseCode}|%mdc{ResponseDescription}|%logger|%.-5level|||%mdc{ElapsedTime}|%mdc{RemoteHost}|%mdc{ClientAddress}|%mdc{ClassName}|||%msg%n" />
43
44   <property name="metricsLogPattern"
45             value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%mdc{BeginTimestamp}|%mdc{EndTimestamp}|%mdc{RequestId}|%mdc{ServiceInstanceId}|%thread|%mdc{ServerFQDN}|%mdc{ServiceName}|%mdc{PartnerName}|%mdc{TargetEntity}|%mdc{TargetServiceName}|%mdc{StatusCode}|%mdc{ResponseCode}|%mdc{ResponseDescription}|%logger|%.-5level|||%mdc{ElapsedTime}|%mdc{RemoteHost}|%mdc{ClientAddress}|%mdc{ClassName}|||%msg%n" />
46
47   <!-- Console (human-readable) logging -->
48   <property name="consolePattern" value="{{ .Values.log.consolePattern.babel.config }}"/>
49
50   <!-- ============================================================================ -->
51   <!-- EELF Appenders -->
52   <!-- ============================================================================ -->
53
54   <appender name="EELF"
55             class="ch.qos.logback.core.rolling.RollingFileAppender">
56     <file>${logDirectory}/${generalLogName}.log</file>
57     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
58       <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.log.zip
59       </fileNamePattern>
60       <maxHistory>60</maxHistory>
61     </rollingPolicy>
62     <encoder>
63       <pattern>${errorLogPattern}</pattern>
64     </encoder>
65   </appender>
66   <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
67     <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
68     <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
69       <level>INFO</level>
70     </filter>
71     <queueSize>256</queueSize>
72     <appender-ref ref="EELF" />
73   </appender>
74
75   <!-- EELF Audit Appender. This appender is used to record audit engine related logging events. The audit logger and appender
76        are specializations of the EELF application root logger and appender. This can be used to segregate Policy engine events
77        from other components, or it can be eliminated to record these events as part of the application root log. -->
78
79   <appender name="EELFAudit"
80             class="ch.qos.logback.core.rolling.RollingFileAppender">
81     <file>${logDirectory}/${auditLogName}.log</file>
82     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
83       <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.log.zip
84       </fileNamePattern>
85       <maxHistory>60</maxHistory>
86     </rollingPolicy>
87     <encoder>
88       <pattern>${auditLogPattern}</pattern>
89     </encoder>
90   </appender>
91   <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
92     <queueSize>256</queueSize>
93     <appender-ref ref="EELFAudit" />
94   </appender>
95
96   <appender name="EELFMetrics"
97             class="ch.qos.logback.core.rolling.RollingFileAppender">
98     <file>${logDirectory}/${metricsLogName}.log</file>
99     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
100       <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.log.zip
101       </fileNamePattern>
102       <maxHistory>60</maxHistory>
103     </rollingPolicy>
104     <encoder>
105       <pattern>${metricsLogPattern}</pattern>
106     </encoder>
107   </appender>
108
109   <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
110     <queueSize>256</queueSize>
111     <appender-ref ref="EELFMetrics" />
112   </appender>
113
114   <appender name="EELFDebug"
115             class="ch.qos.logback.core.rolling.RollingFileAppender">
116     <file>
117       ${logDirectory}/${debugLogName}.log
118     </file>
119     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
120       <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.log.zip
121       </fileNamePattern>
122       <maxHistory>60</maxHistory>
123     </rollingPolicy>
124     <encoder>
125       <pattern>${errorLogPattern}</pattern>
126     </encoder>
127   </appender>
128
129   <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
130     <!-- allow only events with a level below INFO, that is TRACE and DEBUG -->
131     <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
132       <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
133         <expression>
134           e.level.toInt() &lt; INFO.toInt()
135         </expression>
136       </evaluator>
137       <OnMismatch>DENY</OnMismatch>
138       <OnMatch>NEUTRAL</OnMatch>
139     </filter>
140     <queueSize>256</queueSize>
141     <appender-ref ref="EELFDebug" />
142     <includeCallerData>false</includeCallerData>
143   </appender>
144
145   <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
146     <encoder>
147       <pattern>${consolePattern}</pattern>
148     </encoder>
149   </appender>
150
151   <!-- ============================================================================ -->
152   <!--  EELF loggers -->
153   <!-- ============================================================================ -->
154
155   <logger name="com.att.eelf" level="INFO" additivity="false">
156     <appender-ref ref="asyncEELF" />
157   </logger>
158
159   <!-- The level of this logger determines the contents of the debug log -->
160   <logger name="com.att.eelf.debug" level="INFO" additivity="false">
161     <appender-ref ref="asyncEELFDebug" />
162   </logger>
163
164   <logger name="com.att.eelf.audit" level="INFO" additivity="false">
165     <appender-ref ref="asyncEELFAudit" />
166   </logger>
167
168   <logger name="com.att.eelf.metrics" level="INFO" additivity="false">
169     <appender-ref ref="asyncEELFMetrics" />
170   </logger>
171
172   <!-- ============================================================================ -->
173   <!-- Non-EELF loggers -->
174   <!-- ============================================================================ -->
175
176   <!-- ATT packages including DMAAP message routing -->
177   <logger name="com.att" level="{{.Values.log.logger.att}}" />
178
179   <!-- Spring related loggers -->
180   <logger name="org.springframework" level="{{.Values.log.logger.springframework}}" />
181   <logger name="org.springframework.beans" level="{{.Values.log.logger.springframeworkBeans}}" />
182   <logger name="org.springframework.web" level="{{.Values.log.logger.springframeworkWeb}}" />
183
184   <!-- Other Loggers that may help troubleshoot -->
185   <logger name="org.apache" level="{{.Values.log.logger.apache}}" />
186   <logger name="org.apache.commons" level="{{.Values.log.logger.apacheCommons}}" />
187
188   <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. May aid in troubleshooting) -->
189   <logger name="org.apache.camel" level="{{.Values.log.logger.apacheCamel}}" />
190   <logger name="org.apache.cxf" level="{{.Values.log.logger.apacheCxf}}" />
191   <logger name="org.apache.camel.processor.interceptor" level="{{.Values.log.logger.apacheCamelProcessorInterceptor}}" />
192   <logger name="org.apache.cxf.jaxrs.interceptor" level="{{.Values.log.logger.apacheCxfJaxrsInterceptor}}" />
193   <logger name="org.apache.cxf.service" level="{{.Values.log.logger.apacheCxfService}}" />
194   <logger name="org.apache.camel.component.restlet" level="{{.Values.log.logger.apacheCamelComponentRestlet}}" />
195
196   <logger name="org.restlet" level="{{.Values.log.logger.restlet}}" />
197
198   <!-- logback internals logging -->
199   <logger name="ch.qos.logback.classic" level="{{.Values.log.logger.qosLogbackClassic}}" />
200   <logger name="ch.qos.logback.core" level="{{.Values.log.logger.qosLogbackCore}}" />
201
202   <!-- ============================================================================ -->
203   <!-- Default / root appenders -->
204   <!-- This determines the logging level for 3rd party code -->
205   <!-- ============================================================================ -->
206
207   <root level="{{ .Values.log.root.level }}">
208     <appender-ref ref="asyncEELF" />
209     <appender-ref ref="asyncEELFDebug" />
210     <appender-ref ref="STDOUT" />
211   </root>
212
213 </configuration>