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