018cca8a431d9c618ac802cd1c4739e77ab71794
[oom.git] / kubernetes / vid / resources / config / log / vid / logback.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3   ================================================================================
4   eCOMP Portal SDK
5   ================================================================================
6   Copyright (C) 2017 AT&T Intellectual Property
7   ================================================================================
8   Licensed under the Apache License, Version 2.0 (the "License");
9   you may not use this file except in compliance with the License.
10   You may obtain a copy of the License at
11   
12        http://www.apache.org/licenses/LICENSE-2.0
13   
14   Unless required by applicable law or agreed to in writing, software
15   distributed under the License is distributed on an "AS IS" BASIS,
16   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17   See the License for the specific language governing permissions and
18   limitations under the License.
19   ================================================================================
20   -->
21 <configuration scan="true" scanPeriod="3 seconds" debug="true">
22    <!--  specify the component name -->
23    <property name="componentName" value="vid"/>
24    <!--  specify the base path of the log directory -->
25    <property name="logDirPrefix" value="/var/log/onap" />
26    <!-- The directory where logs are written -->
27    <property name="logDirectory" value="${logDirPrefix}/${componentName}" />
28
29    <!--  log file names -->
30    <property name="generalLogName" value="application" />
31    <property name="errorLogName" value="error" />
32    <property name="metricsLogName" value="metrics" />
33    <property name="auditLogName" value="audit" />
34    <property name="debugLogName" value="debug" />
35    <property name="outgoingRequestsLogName" value="outgoingRequests" />
36
37    <!--  other constants -->
38    <property name="queueSize" value="256" />
39    <property name="maxFileSize" value="50MB" />
40    <property name="maxHistory" value="30" />
41    <property name="totalSizeCap" value="10GB" />
42
43   <!-- ONAP Application Logging Specification v1.2 (Casablanca)
44        https://wiki.onap.org/pages/viewpage.action?pageId=28378955 -->
45
46    <property name="auditLoggerPattern"
47      value="%X{EntryTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level||%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{ClientIPAddress}|%X{ClassName}|||%marker|%mdc|||%msg%n"/>
48
49    <property name="metricsLoggerPattern"
50      value="%X{InvokeTimestamp}|%X{LogTimestamp}|%X{RequestID}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|0|%X{ServerIPAddress}|%replace(%X{ElapsedTime}){' ms',''}|%X{ServerFQDN}|%X{ClientIPAddress}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{TargetVisualEntity}|%marker|%mdc|%X{CustomField3}|%X{CustomField4}| %msg%nopexception%n" />
51
52    <property name="errorLoggerPattern"
53             value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode:-900}|%replace(%msg){'[\r\n]+', '\\\\n'}|%nopexception%replace(%xThrowable){'[\r\n]+', '\\\\n'}%n" />
54
55    <property name="debugLoggerPattern" value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%msg %nopexception%replace(%xThrowable){'[\r\n]+', '\\\\n'}|^%n" />
56
57    <!-- use %class so library logging calls yield their class name -->
58    <property name="applicationLoggerPattern"
59      value="%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestID}|%thread|%.-5level|%class{36}| %msg%n" />
60
61
62
63    <!-- Example evaluator filter applied against console appender -->
64    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
65       <encoder>
66          <pattern>${debugLoggerPattern}</pattern>
67       </encoder>
68    </appender>
69
70    <!-- ============================================================================ -->
71    <!-- EELF Appenders -->
72    <!-- ============================================================================ -->
73
74    <!-- The EELFAppender is used to record events to the general application log -->
75    <appender name="EELF" class="ch.qos.logback.core.rolling.RollingFileAppender">
76       <file>${logDirectory}/${generalLogName}.log</file>
77       <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
78          <fileNamePattern>${logDirectory}/${generalLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
79          <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
80             <maxFileSize>${maxFileSize}</maxFileSize>
81          </timeBasedFileNamingAndTriggeringPolicy>
82          <maxHistory>${maxHistory}</maxHistory>
83          <totalSizeCap>${totalSizeCap}</totalSizeCap>
84       </rollingPolicy>
85       <encoder>
86          <pattern>${applicationLoggerPattern}</pattern>
87       </encoder>
88       <filter class="org.onap.portalapp.util.CustomLoggingFilter" />
89    </appender>
90
91    <appender name="asyncEELF" class="ch.qos.logback.classic.AsyncAppender">
92       <queueSize>${queueSize}</queueSize>
93       <includeCallerData>true</includeCallerData>
94       <appender-ref ref="EELF" />
95    </appender>
96
97    <!-- EELF Security Appender. This appender is used to record security events
98     to the security log file. Security events are separate from other loggers 
99     in EELF so that security log records can be captured and managed in a secure 
100     way separate from the other logs. This appender is set to never discard any 
101     events. -->
102    <!--     
103   <appender name="EELFSecurity"
104     class="ch.qos.logback.core.rolling.RollingFileAppender">
105     <file>${logDirectory}/${securityLogName}.log</file>
106     <rollingPolicy
107       class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
108       <fileNamePattern>${logDirectory}/${securityLogName}.%i.log.zip
109       </fileNamePattern>
110       <minIndex>1</minIndex>
111       <maxIndex>9</maxIndex>
112     </rollingPolicy>
113     <triggeringPolicy
114       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
115       <maxFileSize>5MB</maxFileSize>
116     </triggeringPolicy>
117     <encoder>
118       <pattern>${defaultPattern}</pattern>
119     </encoder>
120   </appender>
121   
122   <appender name="asyncEELFSecurity" class="ch.qos.logback.classic.AsyncAppender">
123     <queueSize>256</queueSize>
124     <discardingThreshold>0</discardingThreshold>
125     <appender-ref ref="EELFSecurity" />
126   </appender>
127    -->
128    <!-- EELF Performance Appender. This appender is used to record performance 
129     records. -->
130    <!--
131   <appender name="EELFPerformance"
132     class="ch.qos.logback.core.rolling.RollingFileAppender">
133     <file>${logDirectory}/${performanceLogName}.log</file>
134     <rollingPolicy
135       class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
136       <fileNamePattern>${logDirectory}/${performanceLogName}.%i.log.zip
137       </fileNamePattern>
138       <minIndex>1</minIndex>
139       <maxIndex>9</maxIndex>
140     </rollingPolicy>
141     <triggeringPolicy
142       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
143       <maxFileSize>5MB</maxFileSize>
144     </triggeringPolicy>
145     <encoder>
146       <outputPatternAsHeader>true</outputPatternAsHeader>
147       <pattern>${defaultPattern}</pattern>
148     </encoder>
149   </appender>
150   <appender name="asyncEELFPerformance" class="ch.qos.logback.classic.AsyncAppender">
151     <queueSize>256</queueSize>
152     <appender-ref ref="EELFPerformance" />
153   </appender>
154   -->
155    <!-- EELF Server Appender. This appender is used to record Server related 
156     logging events. The Server logger and appender are specializations of the 
157     EELF application root logger and appender. This can be used to segregate Server 
158     events from other components, or it can be eliminated to record these events 
159     as part of the application root log. -->
160    <!--
161   <appender name="EELFServer"
162     class="ch.qos.logback.core.rolling.RollingFileAppender">
163     <file>${logDirectory}/${serverLogName}.log</file>
164     <rollingPolicy
165       class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
166       <fileNamePattern>${logDirectory}/${serverLogName}.%i.log.zip
167       </fileNamePattern>
168       <minIndex>1</minIndex>
169       <maxIndex>9</maxIndex>
170     </rollingPolicy>
171     <triggeringPolicy
172       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
173       <maxFileSize>5MB</maxFileSize>
174     </triggeringPolicy>
175     <encoder>
176         <pattern>${defaultPattern}</pattern>
177     </encoder>
178   </appender>
179   <appender name="asyncEELFServer" class="ch.qos.logback.classic.AsyncAppender">
180     <queueSize>256</queueSize>
181     <appender-ref ref="EELFServer" />
182   </appender>
183    -->
184    <!-- EELF Policy Appender. This appender is used to record Policy engine 
185     related logging events. The Policy logger and appender are specializations 
186     of the EELF application root logger and appender. This can be used to segregate 
187     Policy engine events from other components, or it can be eliminated to record 
188     these events as part of the application root log. -->
189    <!--
190   <appender name="EELFPolicy"
191     class="ch.qos.logback.core.rolling.RollingFileAppender">
192     <file>${logDirectory}/${policyLogName}.log</file>
193     <rollingPolicy
194       class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
195       <fileNamePattern>${logDirectory}/${policyLogName}.%i.log.zip
196       </fileNamePattern>
197       <minIndex>1</minIndex>
198       <maxIndex>9</maxIndex>
199     </rollingPolicy>
200     <triggeringPolicy
201       class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
202       <maxFileSize>5MB</maxFileSize>
203     </triggeringPolicy>
204     <encoder>
205         <pattern>${defaultPattern}</pattern>
206     </encoder>
207   </appender>
208   <appender name="asyncEELFPolicy" class="ch.qos.logback.classic.AsyncAppender">
209     <queueSize>256</queueSize>
210     <appender-ref ref="EELFPolicy" />
211   </appender>
212   -->
213    <!-- EELF Audit Appender. This appender is used to record audit engine 
214     related logging events. The audit logger and appender are specializations 
215     of the EELF application root logger and appender. This can be used to segregate 
216     Policy engine events from other components, or it can be eliminated to record 
217     these events as part of the application root log. -->
218    <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
219       <file>${logDirectory}/${auditLogName}.log</file>
220       <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
221          <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
222          <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
223             <maxFileSize>${maxFileSize}</maxFileSize>
224          </timeBasedFileNamingAndTriggeringPolicy>
225          <maxHistory>${maxHistory}</maxHistory>
226          <totalSizeCap>${totalSizeCap}</totalSizeCap>
227       </rollingPolicy>
228       <encoder>
229          <pattern>${auditLoggerPattern}</pattern>
230       </encoder>
231    </appender>
232    <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
233       <queueSize>${queueSize}</queueSize>
234       <appender-ref ref="EELFAudit" />
235       <includeCallerData>true</includeCallerData>
236    </appender>
237
238    <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">
239       <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
240         <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
241           <marker>INVOKE</marker>
242           <marker>INVOKE-RETURN</marker>
243         </evaluator>
244         <onMismatch>DENY</onMismatch>
245         <onMatch>ACCEPT</onMatch>
246       </filter>
247       <file>${logDirectory}/${metricsLogName}.log</file>
248       <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
249          <fileNamePattern>${logDirectory}/${metricsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
250          <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
251             <maxFileSize>${maxFileSize}</maxFileSize>
252          </timeBasedFileNamingAndTriggeringPolicy>
253          <maxHistory>${maxHistory}</maxHistory>
254          <totalSizeCap>${totalSizeCap}</totalSizeCap>
255       </rollingPolicy>
256       <encoder>
257       <pattern>${metricsLoggerPattern}</pattern>
258       </encoder>
259    </appender>
260    <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
261       <queueSize>${queueSize}</queueSize>
262       <appender-ref ref="EELFMetrics" />
263       <includeCallerData>true</includeCallerData>
264    </appender>
265
266    <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">
267       <filter class="ch.qos.logback.classic.filter.LevelFilter">
268         <level>ERROR</level>
269         <onMatch>ACCEPT</onMatch>
270         <onMismatch>NEUTRAL</onMismatch>
271       </filter>
272       <filter class="ch.qos.logback.classic.filter.LevelFilter">
273         <level>WARN</level>
274         <onMatch>ACCEPT</onMatch>
275         <onMismatch>DENY</onMismatch>
276       </filter>
277       <file>${logDirectory}/${errorLogName}.log</file>
278       <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
279          <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
280          <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
281             <maxFileSize>${maxFileSize}</maxFileSize>
282          </timeBasedFileNamingAndTriggeringPolicy>
283          <maxHistory>${maxHistory}</maxHistory>
284          <totalSizeCap>${totalSizeCap}</totalSizeCap>
285       </rollingPolicy>
286       <encoder>
287         <pattern>${errorLoggerPattern}</pattern>
288       </encoder>
289    </appender>
290
291    <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
292       <queueSize>${queueSize}</queueSize>
293       <appender-ref ref="EELFError" />
294       <includeCallerData>true</includeCallerData>
295    </appender>
296
297    <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
298       <file>${logDirectory}/${debugLogName}.log</file>
299       <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
300          <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
301          <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
302             <maxFileSize>${maxFileSize}</maxFileSize>
303          </timeBasedFileNamingAndTriggeringPolicy>
304          <maxHistory>${maxHistory}</maxHistory>
305          <totalSizeCap>${totalSizeCap}</totalSizeCap>
306       </rollingPolicy>
307       <encoder>
308          <pattern>${debugLoggerPattern}</pattern>
309       </encoder>
310    </appender>
311    <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
312       <queueSize>${queueSize}</queueSize>
313       <appender-ref ref="EELFDebug" />
314       <includeCallerData>true</includeCallerData>
315    </appender>
316
317    <appender name="OutgoingRequests" class="ch.qos.logback.core.rolling.RollingFileAppender">
318       <file>${logDirectory}/${outgoingRequestsLogName}.log</file>
319       <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
320          <fileNamePattern>${logDirectory}/${outgoingRequestsLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
321          <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
322             <maxFileSize>${maxFileSize}</maxFileSize>
323          </timeBasedFileNamingAndTriggeringPolicy>
324          <maxHistory>${maxHistory}</maxHistory>
325          <totalSizeCap>${totalSizeCap}</totalSizeCap>
326       </rollingPolicy>
327       <encoder>
328          <pattern>${debugLoggerPattern}</pattern>
329       </encoder>
330    </appender>
331    <appender name="asyncOutgoingRequests" class="ch.qos.logback.classic.AsyncAppender">
332       <queueSize>${queueSize}</queueSize>
333       <appender-ref ref="OutgoingRequests" />
334       <includeCallerData>true</includeCallerData>
335    </appender>
336
337
338    <!-- ============================================================================ -->
339    <!--  EELF loggers -->
340    <!-- ============================================================================ -->
341    <logger name="com.att.eelf" level="debug" additivity="false">
342       <appender-ref ref="asyncEELF" />
343    </logger>
344
345    <!--
346   <logger name="com.att.eelf.security" level="info" additivity="false">
347     <appender-ref ref="asyncEELFSecurity" />
348   </logger>
349   <logger name="com.att.eelf.perf" level="info" additivity="false">
350     <appender-ref ref="asyncEELFPerformance" />
351   </logger>
352   <logger name="com.att.eelf.server" level="info" additivity="false">
353     <appender-ref ref="asyncEELFServer" />
354   </logger>
355   <logger name="com.att.eelf.policy" level="info" additivity="false">
356     <appender-ref ref="asyncEELFPolicy" />
357   </logger>
358   -->
359
360    <logger name="org.onap.logging.filter.base.AbstractAuditLogFilter" level="info" additivity="false">
361       <appender-ref ref="asyncEELFAudit" />
362    </logger>
363
364    <logger name="org.onap.logging.filter.base.AbstractMetricLogFilter" level="info" additivity="false">
365       <appender-ref ref="asyncEELFMetrics" />
366    </logger>
367
368    <logger name="com.att.eelf.error" level="info" additivity="false">
369       <appender-ref ref="asyncEELFError" />
370       <appender-ref ref="asyncEELFDebug" />
371    </logger>
372
373    <logger name="com.att.eelf.debug" level="debug" additivity="false">
374       <appender-ref ref="asyncEELFDebug" />
375    </logger>
376
377    <logger name="http.requests.outgoing" level="DEBUG" additivity="false">
378       <appender-ref ref="asyncOutgoingRequests"/>
379    </logger>
380
381    <root level="INFO">
382       <appender-ref ref="asyncEELF" />
383       <appender-ref ref="asyncEELFError" />
384    </root>
385
386 </configuration>