1 <?xml version="1.0" encoding="utf-8"?>
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
8 # http://www.apache.org/licenses/LICENSE-2.0
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.
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{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", 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 <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
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>
49 <pattern>${pattern}</pattern>
52 <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ALL">
53 <appender-ref ref="ALL_ROLLING" />
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>
65 <onMismatch>NEUTRAL</onMismatch>
66 <onMatch>DENY</onMatch>
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>
73 <onMismatch>NEUTRAL</onMismatch>
74 <onMatch>DENY</onMatch>
76 <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
77 <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
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>
89 <pattern>${pattern}</pattern>
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
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>
103 <onMismatch>NEUTRAL</onMismatch>
104 <onMatch>DENY</onMatch>
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() <= DEBUG.toInt()</expression>
111 <OnMismatch>DENY</OnMismatch>
112 <OnMatch>NEUTRAL</OnMatch>
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>
123 <pattern>${pattern}</pattern>
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>
134 <onMismatch>DENY</onMismatch>
135 <onMatch>ACCEPT</onMatch>
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>
146 <pattern>${pattern}</pattern>
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>
157 <onMismatch>DENY</onMismatch>
158 <onMatch>ACCEPT</onMatch>
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>
169 <pattern>${pattern}</pattern>
172 <!-- Asynchronicity Configurations -->
173 <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_DEBUG">
174 <queueSize>${queueSize}</queueSize>
175 <appender-ref ref="DEBUG_ROLLING" />
177 <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_TRANSACTION">
178 <queueSize>${queueSize}</queueSize>
179 <appender-ref ref="TRANSACTION_ROLLING" />
181 <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ERROR">
182 <queueSize>${queueSize}</queueSize>
183 <appender-ref ref="ERROR_ROLLING" />
185 <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_AUDIT">
186 <queueSize>${queueSize}</queueSize>
187 <appender-ref ref="AUDIT_ROLLING" />
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")'>
196 <appender-ref ref="ALL_ROLLING" />
200 <logger level="INFO" name="org.openecomp.sdc" />