Merge "[SDC] Update SDC docker versions to 1.10.1"
[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"/>
19     <property name="subComponentName" scope="system" value="sdc-be"/>
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"
35         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"/>
36
37     <!-- STDOUT -->
38     <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT">
39         <encoder>
40             <pattern>${pattern}</pattern>
41         </encoder>
42     </appender>
43
44     <!-- STDERR -->
45     <appender class="ch.qos.logback.core.ConsoleAppender" name="STDERR">
46         <filter class="ch.qos.logback.classic.filter.LevelFilter">
47             <level>ERROR</level>
48             <onMatch>ACCEPT</onMatch>
49             <onMismatch>DENY</onMismatch>
50         </filter>
51         <encoder>
52             <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
53         </encoder>
54     </appender>
55
56     <!-- All log -->
57     <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
58         <then>
59             <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ALL_ROLLING">
60                 <file>${logDirectory}/${allLogName}.log</file>
61                 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
62                     <fileNamePattern>${logDirectory}/${allLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
63                     <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
64                         <maxFileSize>${maxFileSize}</maxFileSize>
65                     </timeBasedFileNamingAndTriggeringPolicy>
66                     <maxHistory>${maxHistory}</maxHistory>
67                     <totalSizeCap>${totalSizeCap}</totalSizeCap>
68                 </rollingPolicy>
69                 <encoder>
70                     <pattern>${pattern}</pattern>
71                 </encoder>
72             </appender>
73             <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ALL">
74                 <appender-ref ref="ALL_ROLLING"/>
75             </appender>
76         </then>
77     </if>
78     <!-- Error log -->
79     <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR_ROLLING">
80         <file>${logDirectory}/${errorLogName}.log</file>
81         <!-- Audit messages filter - deny audit messages -->
82         <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
83             <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
84                 <marker>AUDIT_MARKER</marker>
85             </evaluator>
86             <onMismatch>NEUTRAL</onMismatch>
87             <onMatch>DENY</onMatch>
88         </filter>
89         <!-- Transaction messages filter - deny Transaction messages -->
90         <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
91             <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
92                 <marker>TRANSACTION_MARKER</marker>
93             </evaluator>
94             <onMismatch>NEUTRAL</onMismatch>
95             <onMatch>DENY</onMatch>
96         </filter>
97         <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
98         <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
99             <level>INFO</level>
100         </filter>
101         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
102             <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
103             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
104                 <maxFileSize>${maxFileSize}</maxFileSize>
105             </timeBasedFileNamingAndTriggeringPolicy>
106             <maxHistory>${maxHistory}</maxHistory>
107             <totalSizeCap>${totalSizeCap}</totalSizeCap>
108         </rollingPolicy>
109         <encoder>
110             <pattern>${pattern}</pattern>
111         </encoder>
112     </appender>
113     <!-- Debug log -->
114     <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG_ROLLING">
115         <file>${logDirectory}/${debugLogName}.log</file>
116         <!-- No need to deny audit messages - they are INFO only, will be denied anyway -->
117         <!-- Transaction messages filter - deny Transaction messages, there are some DEBUG level messages among them -->
118         <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
119             <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
120                 <marker>TRANSACTION_MARKER</marker>
121             </evaluator>
122             <onMismatch>NEUTRAL</onMismatch>
123             <onMatch>DENY</onMatch>
124         </filter>
125         <!-- accept DEBUG and TRACE level -->
126         <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
127             <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
128                 <expression>e.level.toInt() &lt;= DEBUG.toInt()</expression>
129             </evaluator>
130             <OnMismatch>DENY</OnMismatch>
131             <OnMatch>NEUTRAL</OnMatch>
132         </filter>
133         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
134             <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
135             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
136                 <maxFileSize>${maxFileSize}</maxFileSize>
137             </timeBasedFileNamingAndTriggeringPolicy>
138             <maxHistory>${maxHistory}</maxHistory>
139             <totalSizeCap>${totalSizeCap}</totalSizeCap>
140         </rollingPolicy>
141         <encoder>
142             <pattern>${pattern}</pattern>
143         </encoder>
144     </appender>
145     <!-- Audit log -->
146     <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT_ROLLING">
147         <file>${logDirectory}/${auditLogName}.log</file>
148         <!-- Audit messages filter - accept audit messages -->
149         <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
150             <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
151                 <marker>AUDIT_MARKER</marker>
152             </evaluator>
153             <onMismatch>DENY</onMismatch>
154             <onMatch>ACCEPT</onMatch>
155         </filter>
156         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
157             <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
158             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
159                 <maxFileSize>${maxFileSize}</maxFileSize>
160             </timeBasedFileNamingAndTriggeringPolicy>
161             <maxHistory>${maxHistory}</maxHistory>
162             <totalSizeCap>${totalSizeCap}</totalSizeCap>
163         </rollingPolicy>
164         <encoder>
165             <pattern>${pattern}</pattern>
166         </encoder>
167     </appender>
168     <!-- SdncTransaction log -->
169     <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="TRANSACTION_ROLLING">
170         <file>${logDirectory}/${transactionLogName}.log</file>
171         <!-- Transaction messages filter - accept audit messages -->
172         <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
173             <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
174                 <marker>TRANSACTION_MARKER</marker>
175             </evaluator>
176             <onMismatch>DENY</onMismatch>
177             <onMatch>ACCEPT</onMatch>
178         </filter>
179         <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
180             <fileNamePattern>${logDirectory}/${transactionLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
181             <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
182                 <maxFileSize>${maxFileSize}</maxFileSize>
183             </timeBasedFileNamingAndTriggeringPolicy>
184             <maxHistory>${maxHistory}</maxHistory>
185             <totalSizeCap>${totalSizeCap}</totalSizeCap>
186         </rollingPolicy>
187         <encoder>
188             <pattern>${pattern}</pattern>
189         </encoder>
190     </appender>
191     <!-- Asynchronicity Configurations -->
192     <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_DEBUG">
193         <queueSize>${queueSize}</queueSize>
194         <appender-ref ref="DEBUG_ROLLING"/>
195     </appender>
196     <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_TRANSACTION">
197         <queueSize>${queueSize}</queueSize>
198         <appender-ref ref="TRANSACTION_ROLLING"/>
199     </appender>
200     <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ERROR">
201         <queueSize>${queueSize}</queueSize>
202         <appender-ref ref="ERROR_ROLLING"/>
203     </appender>
204     <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_AUDIT">
205         <queueSize>${queueSize}</queueSize>
206         <appender-ref ref="AUDIT_ROLLING"/>
207     </appender>
208     <root level="INFO">
209         <appender-ref ref="ASYNC_ERROR"/>
210         <appender-ref ref="ASYNC_DEBUG"/>
211         <appender-ref ref="ASYNC_AUDIT"/>
212         <appender-ref ref="ASYNC_TRANSACTION"/>
213         <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
214             <then>
215                 <appender-ref ref="ALL_ROLLING"/>
216             </then>
217         </if>
218         <appender-ref ref="STDOUT"/>
219         <appender-ref ref="STDERR"/>
220     </root>
221     <logger level="INFO" name="org.openecomp.sdc"/>
222 </configuration>