0f044d7646d5829157b8c68bcb1fe4a1a506788c
[oom.git] / kubernetes / sdc / components / sdc-be / resources / config / logging / logback.xml
1 <?xml version="1.0" encoding="utf-8"?>
2 <!--
3 # Copyright © 2018 Amdocs, Bell Canada, AT&T, ZTE
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #       http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15 -->
16 <configuration scan="true" scanPeriod="3 seconds">
17     <property name="logDir" value="/var/log/onap" />
18     <property name="componentName" scope="system" value="sdc"></property>
19     <property name="subComponentName" scope="system" value="sdc-be"></property>
20     <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
21     <property file="${config.home}/catalog-be/configuration.yaml" />
22     <property name="enable-all-log" scope="context" value="false" />
23     <!--  log file names -->
24     <property name="errorLogName" value="error" />
25     <property name="metricsLogName" value="metrics" />
26     <property name="auditLogName" value="audit" />
27     <property name="debugLogName" value="debug" />
28     <property name="transactionLogName" value="transaction" />
29     <property name="allLogName" value="all" />
30     <property name="queueSize" value="256" />
31     <property name="maxFileSize" value="50MB" />
32     <property name="maxHistory" value="30" />
33     <property name="totalSizeCap" value="10GB" />
34     <property name="pattern" value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />
35     <!-- All log -->
36     <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
37         <then>
38             <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ALL_ROLLING">
39                 <file>${logDirectory}/${allLogName}.log</file>
40                 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
41                     <fileNamePattern>${logDirectory}/${allLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
42                     <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
43                         <maxFileSize>${maxFileSize}</maxFileSize>
44                     </timeBasedFileNamingAndTriggeringPolicy>
45                     <maxHistory>${maxHistory}</maxHistory>
46                     <totalSizeCap>${totalSizeCap}</totalSizeCap>
47                 </rollingPolicy>
48                 <encoder>
49                     <pattern>${pattern}</pattern>
50                 </encoder>
51             </appender>
52             <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ALL">
53                 <appender-ref ref="ALL_ROLLING" />
54             </appender>
55         </then>
56     </if>
57     <!-- Error log -->
58     <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR_ROLLING">
59         <file>${logDirectory}/${errorLogName}.log</file>
60         <!-- Audit messages filter - deny audit messages -->
61         <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
62             <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
63                 <marker>AUDIT_MARKER</marker>
64             </evaluator>
65             <onMismatch>NEUTRAL</onMismatch>
66             <onMatch>DENY</onMatch>
67         </filter>
68         <!-- Transaction messages filter - deny Transaction messages -->
69         <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
70             <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
71                 <marker>TRANSACTION_MARKER</marker>
72             </evaluator>
73             <onMismatch>NEUTRAL</onMismatch>
74             <onMatch>DENY</onMatch>
75         </filter>
76         <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
77         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
78             <level>INFO</level>
79         </filter>
80         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
81             <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
82             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
83                 <maxFileSize>${maxFileSize}</maxFileSize>
84             </timeBasedFileNamingAndTriggeringPolicy>
85             <maxHistory>${maxHistory}</maxHistory>
86             <totalSizeCap>${totalSizeCap}</totalSizeCap>
87         </rollingPolicy>
88         <encoder>
89             <pattern>${pattern}</pattern>
90         </encoder>
91     </appender>
92     <!-- Debug log -->
93     <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG_ROLLING">
94         <file>${logDirectory}/${debugLogName}.log</file>
95         <!-- No need to deny audit messages - they are INFO only, will be denied 
96                         anyway -->
97         <!-- Transaction messages filter - deny Transaction messages, there are 
98                         some DEBUG level messages among them -->
99         <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
100             <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
101                 <marker>TRANSACTION_MARKER</marker>
102             </evaluator>
103             <onMismatch>NEUTRAL</onMismatch>
104             <onMatch>DENY</onMatch>
105         </filter>
106         <!-- accept DEBUG and TRACE level -->
107         <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
108             <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
109                 <expression>e.level.toInt() &lt;= DEBUG.toInt()</expression>
110             </evaluator>
111             <OnMismatch>DENY</OnMismatch>
112             <OnMatch>NEUTRAL</OnMatch>
113         </filter>
114         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
115             <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
116             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
117                 <maxFileSize>${maxFileSize}</maxFileSize>
118             </timeBasedFileNamingAndTriggeringPolicy>
119             <maxHistory>${maxHistory}</maxHistory>
120             <totalSizeCap>${totalSizeCap}</totalSizeCap>
121         </rollingPolicy>
122         <encoder>
123             <pattern>${pattern}</pattern>
124         </encoder>
125     </appender>
126     <!-- Audit log -->
127     <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT_ROLLING">
128         <file>${logDirectory}/${auditLogName}.log</file>
129         <!-- Audit messages filter - accept audit messages -->
130         <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
131             <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
132                 <marker>AUDIT_MARKER</marker>
133             </evaluator>
134             <onMismatch>DENY</onMismatch>
135             <onMatch>ACCEPT</onMatch>
136         </filter>
137         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
138             <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
139             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
140                 <maxFileSize>${maxFileSize}</maxFileSize>
141             </timeBasedFileNamingAndTriggeringPolicy>
142             <maxHistory>${maxHistory}</maxHistory>
143             <totalSizeCap>${totalSizeCap}</totalSizeCap>
144         </rollingPolicy>
145         <encoder>
146             <pattern>${pattern}</pattern>
147         </encoder>
148     </appender>
149     <!-- SdncTransaction log -->
150     <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="TRANSACTION_ROLLING">
151         <file>${logDirectory}/${transactionLogName}.log</file>
152         <!-- Transaction messages filter - accept audit messages -->
153         <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
154             <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
155                 <marker>TRANSACTION_MARKER</marker>
156             </evaluator>
157             <onMismatch>DENY</onMismatch>
158             <onMatch>ACCEPT</onMatch>
159         </filter>
160         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
161             <fileNamePattern>${logDirectory}/${transactionLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
162             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
163                 <maxFileSize>${maxFileSize}</maxFileSize>
164             </timeBasedFileNamingAndTriggeringPolicy>
165             <maxHistory>${maxHistory}</maxHistory>
166             <totalSizeCap>${totalSizeCap}</totalSizeCap>
167         </rollingPolicy>
168         <encoder>
169             <pattern>${pattern}</pattern>
170         </encoder>
171     </appender>
172     <!-- Asynchronicity Configurations -->
173     <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_DEBUG">
174         <queueSize>${queueSize}</queueSize>
175         <appender-ref ref="DEBUG_ROLLING" />
176     </appender>
177     <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_TRANSACTION">
178         <queueSize>${queueSize}</queueSize>
179         <appender-ref ref="TRANSACTION_ROLLING" />
180     </appender>
181     <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ERROR">
182         <queueSize>${queueSize}</queueSize>
183         <appender-ref ref="ERROR_ROLLING" />
184     </appender>
185     <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_AUDIT">
186         <queueSize>${queueSize}</queueSize>
187         <appender-ref ref="AUDIT_ROLLING" />
188     </appender>
189     <root level="INFO">
190         <appender-ref ref="ASYNC_ERROR" />
191         <appender-ref ref="ASYNC_DEBUG" />
192         <appender-ref ref="ASYNC_AUDIT" />
193         <appender-ref ref="ASYNC_TRANSACTION" />
194         <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
195             <then>
196                 <appender-ref ref="ALL_ROLLING" />
197             </then>
198         </if>
199     </root>
200     <logger level="INFO" name="org.openecomp.sdc" />
201 </configuration>