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 anyway -->
96 <!-- Transaction messages filter - deny Transaction messages, there are some DEBUG level messages among them -->
97 <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
98 <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
99 <marker>TRANSACTION_MARKER</marker>
101 <onMismatch>NEUTRAL</onMismatch>
102 <onMatch>DENY</onMatch>
104 <!-- accept DEBUG and TRACE level -->
105 <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
106 <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
107 <expression>e.level.toInt() <= DEBUG.toInt()</expression>
109 <OnMismatch>DENY</OnMismatch>
110 <OnMatch>NEUTRAL</OnMatch>
112 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
113 <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
114 <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
115 <maxFileSize>${maxFileSize}</maxFileSize>
116 </timeBasedFileNamingAndTriggeringPolicy>
117 <maxHistory>${maxHistory}</maxHistory>
118 <totalSizeCap>${totalSizeCap}</totalSizeCap>
121 <pattern>${pattern}</pattern>
125 <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT_ROLLING">
126 <file>${logDirectory}/${auditLogName}.log</file>
127 <!-- Audit messages filter - accept audit messages -->
128 <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
129 <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
130 <marker>AUDIT_MARKER</marker>
132 <onMismatch>DENY</onMismatch>
133 <onMatch>ACCEPT</onMatch>
135 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
136 <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
137 <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
138 <maxFileSize>${maxFileSize}</maxFileSize>
139 </timeBasedFileNamingAndTriggeringPolicy>
140 <maxHistory>${maxHistory}</maxHistory>
141 <totalSizeCap>${totalSizeCap}</totalSizeCap>
144 <pattern>${pattern}</pattern>
147 <!-- SdncTransaction log -->
148 <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="TRANSACTION_ROLLING">
149 <file>${logDirectory}/${transactionLogName}.log</file>
150 <!-- Transaction messages filter - accept audit messages -->
151 <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
152 <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
153 <marker>TRANSACTION_MARKER</marker>
155 <onMismatch>DENY</onMismatch>
156 <onMatch>ACCEPT</onMatch>
158 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
159 <fileNamePattern>${logDirectory}/${transactionLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
160 <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
161 <maxFileSize>${maxFileSize}</maxFileSize>
162 </timeBasedFileNamingAndTriggeringPolicy>
163 <maxHistory>${maxHistory}</maxHistory>
164 <totalSizeCap>${totalSizeCap}</totalSizeCap>
167 <pattern>${pattern}</pattern>
170 <!-- Asynchronicity Configurations -->
171 <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_DEBUG">
172 <queueSize>${queueSize}</queueSize>
173 <appender-ref ref="DEBUG_ROLLING" />
175 <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_TRANSACTION">
176 <queueSize>${queueSize}</queueSize>
177 <appender-ref ref="TRANSACTION_ROLLING" />
179 <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ERROR">
180 <queueSize>${queueSize}</queueSize>
181 <appender-ref ref="ERROR_ROLLING" />
183 <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_AUDIT">
184 <queueSize>${queueSize}</queueSize>
185 <appender-ref ref="AUDIT_ROLLING" />
188 <appender-ref ref="ASYNC_ERROR" />
189 <appender-ref ref="ASYNC_DEBUG" />
190 <appender-ref ref="ASYNC_AUDIT" />
191 <appender-ref ref="ASYNC_TRANSACTION" />
192 <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
194 <appender-ref ref="ALL_ROLLING" />
198 <logger level="INFO" name="org.openecomp.sdc" />