1 <?xml version="1.0" encoding="utf-8"?>
\r
3 # Copyright © 2018 Amdocs, Bell Canada, AT&T, ZTE
\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
9 # http://www.apache.org/licenses/LICENSE-2.0
\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
18 <configuration scan="true" scanPeriod="3 seconds">
\r
19 <property name="logDir" value="/var/log/onap" />
\r
20 <property name="componentName" scope="system" value="sdc"></property>
\r
21 <property name="subComponentName" scope="system" value="sdc-fe"></property>
\r
22 <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
\r
23 <property file="${config.home}/catalog-fe/configuration.yaml" />
\r
24 <property name="enable-all-log" scope="context" value="false" />
\r
25 <!-- log file names -->
\r
26 <property name="errorLogName" value="error" />
\r
27 <property name="metricsLogName" value="metrics" />
\r
28 <property name="auditLogName" value="audit" />
\r
29 <property name="debugLogName" value="debug" />
\r
30 <property name="transactionLogName" value="transaction" />
\r
31 <property name="allLogName" value="all" />
\r
32 <property name="queueSize" value="256" />
\r
33 <property name="maxFileSize" value="50MB" />
\r
34 <property name="maxHistory" value="30" />
\r
35 <property name="totalSizeCap" value="10GB" />
\r
36 <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" />
\r
38 <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
\r
40 <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ALL_ROLLING">
\r
41 <file>${logDirectory}/${allLogName}.log</file>
\r
42 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
\r
43 <fileNamePattern>${logDirectory}/${allLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
\r
44 <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
\r
45 <maxFileSize>${maxFileSize}</maxFileSize>
\r
46 </timeBasedFileNamingAndTriggeringPolicy>
\r
47 <maxHistory>${maxHistory}</maxHistory>
\r
48 <totalSizeCap>${totalSizeCap}</totalSizeCap>
\r
51 <pattern>${pattern}</pattern>
\r
54 <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ALL">
\r
55 <appender-ref ref="ALL_ROLLING" />
\r
60 <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="ERROR_ROLLING">
\r
61 <file>${logDirectory}/${errorLogName}.log</file>
\r
62 <!-- Audit messages filter - deny audit messages -->
\r
63 <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
\r
64 <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
\r
65 <marker>AUDIT_MARKER</marker>
\r
67 <onMismatch>NEUTRAL</onMismatch>
\r
68 <onMatch>DENY</onMatch>
\r
70 <!-- Transaction messages filter - deny Transaction messages -->
\r
71 <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
\r
72 <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
\r
73 <marker>TRANSACTION_MARKER</marker>
\r
75 <onMismatch>NEUTRAL</onMismatch>
\r
76 <onMatch>DENY</onMatch>
\r
78 <!-- deny all events with a level below INFO, that is TRACE and DEBUG -->
\r
79 <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
\r
82 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
\r
83 <fileNamePattern>${logDirectory}/${errorLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
\r
84 <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
\r
85 <maxFileSize>${maxFileSize}</maxFileSize>
\r
86 </timeBasedFileNamingAndTriggeringPolicy>
\r
87 <maxHistory>${maxHistory}</maxHistory>
\r
88 <totalSizeCap>${totalSizeCap}</totalSizeCap>
\r
91 <pattern>${pattern}</pattern>
\r
95 <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="DEBUG_ROLLING">
\r
96 <file>${logDirectory}/${debugLogName}.log</file>
\r
97 <!-- No need to deny audit messages - they are INFO only, will be denied
\r
99 <!-- Transaction messages filter - deny Transaction messages, there are
\r
100 some DEBUG level messages among them -->
\r
101 <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
\r
102 <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
\r
103 <marker>TRANSACTION_MARKER</marker>
\r
105 <onMismatch>NEUTRAL</onMismatch>
\r
106 <onMatch>DENY</onMatch>
\r
108 <!-- accept DEBUG and TRACE level -->
\r
109 <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
\r
110 <evaluator class="ch.qos.logback.classic.boolex.GEventEvaluator">
\r
111 <expression>e.level.toInt() <= DEBUG.toInt()</expression>
\r
113 <OnMismatch>DENY</OnMismatch>
\r
114 <OnMatch>NEUTRAL</OnMatch>
\r
116 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
\r
117 <fileNamePattern>${logDirectory}/${debugLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
\r
118 <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
\r
119 <maxFileSize>${maxFileSize}</maxFileSize>
\r
120 </timeBasedFileNamingAndTriggeringPolicy>
\r
121 <maxHistory>${maxHistory}</maxHistory>
\r
122 <totalSizeCap>${totalSizeCap}</totalSizeCap>
\r
125 <pattern>${pattern}</pattern>
\r
129 <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="AUDIT_ROLLING">
\r
130 <file>${logDirectory}/${auditLogName}.log</file>
\r
131 <!-- Audit messages filter - accept audit messages -->
\r
132 <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
\r
133 <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
\r
134 <marker>AUDIT_MARKER</marker>
\r
136 <onMismatch>DENY</onMismatch>
\r
137 <onMatch>ACCEPT</onMatch>
\r
139 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
\r
140 <fileNamePattern>${logDirectory}/${auditLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
\r
141 <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
\r
142 <maxFileSize>${maxFileSize}</maxFileSize>
\r
143 </timeBasedFileNamingAndTriggeringPolicy>
\r
144 <maxHistory>${maxHistory}</maxHistory>
\r
145 <totalSizeCap>${totalSizeCap}</totalSizeCap>
\r
148 <pattern>${pattern}</pattern>
\r
151 <!-- SdncTransaction log -->
\r
152 <appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="TRANSACTION_ROLLING">
\r
153 <file>${logDirectory}/${transactionLogName}.log</file>
\r
154 <!-- Transaction messages filter - accept audit messages -->
\r
155 <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
\r
156 <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
\r
157 <marker>TRANSACTION_MARKER</marker>
\r
159 <onMismatch>DENY</onMismatch>
\r
160 <onMatch>ACCEPT</onMatch>
\r
162 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
\r
163 <fileNamePattern>${logDirectory}/${transactionLogName}.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
\r
164 <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
\r
165 <maxFileSize>${maxFileSize}</maxFileSize>
\r
166 </timeBasedFileNamingAndTriggeringPolicy>
\r
167 <maxHistory>${maxHistory}</maxHistory>
\r
168 <totalSizeCap>${totalSizeCap}</totalSizeCap>
\r
171 <pattern>${pattern}</pattern>
\r
174 <!-- Asynchronicity Configurations -->
\r
175 <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_DEBUG">
\r
176 <queueSize>${queueSize}</queueSize>
\r
177 <appender-ref ref="DEBUG_ROLLING" />
\r
179 <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_TRANSACTION">
\r
180 <queueSize>${queueSize}</queueSize>
\r
181 <appender-ref ref="TRANSACTION_ROLLING" />
\r
183 <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_ERROR">
\r
184 <queueSize>${queueSize}</queueSize>
\r
185 <appender-ref ref="ERROR_ROLLING" />
\r
187 <appender class="ch.qos.logback.classic.AsyncAppender" name="ASYNC_AUDIT">
\r
188 <queueSize>${queueSize}</queueSize>
\r
189 <appender-ref ref="AUDIT_ROLLING" />
\r
191 <root level="INFO">
\r
192 <appender-ref ref="ASYNC_ERROR" />
\r
193 <appender-ref ref="ASYNC_DEBUG" />
\r
194 <appender-ref ref="ASYNC_AUDIT" />
\r
195 <appender-ref ref="ASYNC_TRANSACTION" />
\r
196 <if condition='property("enable-all-log").equalsIgnoreCase("true")'>
\r
198 <appender-ref ref="ALL_ROLLING" />
\r
202 <logger level="INFO" name="org.openecomp.sdc" />
\r