Fix audit, metric and error logs as per logging specification
[clamp.git] / src / main / resources / logback-default.xml
1 <included>
2         <jmxConfigurator />
3         <!-- Example evaluator filter applied against console appender -->
4         <property
5                 name="p_tim"
6                 value="%d{&quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&quot;, UTC}" />
7         <property
8                 name="p_lvl"
9                 value="%level" />
10         <property
11                 name="p_log"
12                 value="%logger" />
13         <property
14                 name="p_mdc"
15                 value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}" />
16         <property
17                 name="p_msg"
18                 value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}" />
19         <property
20                 name="p_exc"
21                 value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}" />
22         <property
23                 name="p_mak"
24                 value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}" />
25         <property
26                 name="p_thr"
27                 value="%thread" />
28         <property
29                 name="defaultPattern"
30                 value="%nopexception${p_tim}\t${p_thr}\t${p_lvl}\t${p_log}\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n" />
31         <property
32                 name="debugPattern"
33                 value="%nopexception${p_tim}|${p_lvl}|${p_mdc}|${p_exc}|%msg%n" />
34                 
35         <property
36                 name="errorPattern"
37                 value="%X{EntryTimestamp}|%X{RequestID}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}||||%msg%n" />
38                 
39         <property
40                 name="auditPattern"
41                 value="%X{EntryTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}||||%marker|%mdc|||%msg%n" />
42                 
43         <property
44                 name="metricPattern"
45                 value="%X{InvokeTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{Severity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|%marker|%mdc|||%msg%n" />
46
47
48         <!-- Example evaluator filter applied against console appender -->
49         <appender
50                 name="STDOUT"
51                 class="ch.qos.logback.core.ConsoleAppender">
52                 <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
53                         <level>INFO</level>
54                 </filter>
55                 <encoder>
56                         <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
57                         </pattern>
58                 </encoder>
59         </appender>
60
61         <appender
62                 name="ERROR"
63                 class="ch.qos.logback.core.rolling.RollingFileAppender">
64                 <filter class="ch.qos.logback.classic.filter.LevelFilter">
65             <level>ERROR</level>
66             <onMatch>ACCEPT</onMatch>
67             <onMismatch>DENY</onMismatch>
68         </filter>
69                 <file>${logDirectory}/error.log</file>
70                 <append>true</append>
71                 <encoder>
72                         <pattern>${errorPattern}</pattern>
73                 </encoder>
74                 <rollingPolicy
75                         class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
76                         <fileNamePattern>${logDirectory}/error.%d{yyyy-MM-dd}.%i.log.zip
77                         </fileNamePattern>
78                         <maxFileSize>50MB</maxFileSize>
79                         <maxHistory>20</maxHistory>
80                         <totalSizeCap>1GB</totalSizeCap>
81                 </rollingPolicy>
82         </appender>
83
84         <appender
85                 name="DEBUG"
86                 class="ch.qos.logback.core.rolling.RollingFileAppender">
87                 <file>${logDirectory}/debug.log</file>
88                 <append>true</append>
89                 <encoder>
90                         <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n
91                         </pattern>
92                 </encoder>
93                 <rollingPolicy
94                         class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
95                         <fileNamePattern>${logDirectory}/debug.%d{yyyy-MM-dd}.%i.log.zip
96                         </fileNamePattern>
97                         <maxFileSize>50MB</maxFileSize>
98                         <maxHistory>20</maxHistory>
99                         <totalSizeCap>1GB</totalSizeCap>
100                 </rollingPolicy>
101         </appender>
102
103
104         <appender
105                 name="AUDIT"
106                 class="ch.qos.logback.core.rolling.RollingFileAppender">
107                 <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
108             <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
109                 <marker>ENTRY</marker>
110                 <marker>EXIT</marker>
111             </evaluator>
112             <onMismatch>DENY</onMismatch>
113             <onMatch>ACCEPT</onMatch>
114         </filter>
115                 <file>${logDirectory}/audit.log</file>
116                 <append>true</append>
117                 <encoder>
118                         <pattern>${auditPattern}</pattern>
119                 </encoder>
120                 <rollingPolicy
121                                 class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
122                         <FileNamePattern>${logDirectory}/audit.%d{yyyy-MM-dd}.%i.log.zip
123                         </FileNamePattern>
124                         <maxFileSize>50MB</maxFileSize>
125                         <maxHistory>20</maxHistory>
126                         <totalSizeCap>1GB</totalSizeCap>
127                 </rollingPolicy>
128         </appender>
129         <appender
130                 name="asyncEELFAudit"
131                 class="ch.qos.logback.classic.AsyncAppender">
132                 <queueSize>256</queueSize>
133                 <appender-ref ref="AUDIT" />
134         </appender>
135
136         <appender
137                 name="METRIC"
138                 class="ch.qos.logback.core.rolling.RollingFileAppender">
139                 <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
140             <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
141                 <marker>INVOKE</marker>
142                 <marker>INVOKE-RETURN</marker>
143             </evaluator>
144             <onMismatch>DENY</onMismatch>
145             <onMatch>ACCEPT</onMatch>
146         </filter>
147                 <file>${logDirectory}/metric.log</file>
148                 <append>true</append>
149                 <encoder>
150                         <pattern>${metricPattern}</pattern>
151                 </encoder>
152                 <rollingPolicy
153                                 class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
154                         <FileNamePattern>${logDirectory}/metric.%d{yyyy-MM-dd}.%i.log.zip
155                         </FileNamePattern>
156                         <maxFileSize>50MB</maxFileSize>
157                         <maxHistory>20</maxHistory>
158                         <totalSizeCap>1GB</totalSizeCap>
159                 </rollingPolicy>
160         </appender>
161
162         <appender
163                 name="asyncEELFMetrics"
164                 class="ch.qos.logback.classic.AsyncAppender">
165                 <queueSize>256</queueSize>
166                 <appender-ref ref="METRIC" />
167         </appender>
168
169         <!-- SECURITY related loggers -->
170         <appender
171                 name="SECURITY"
172                 class="ch.qos.logback.core.rolling.RollingFileAppender">
173                 <file>${logDirectory}/security.log</file>
174                 <append>true</append>
175                 <encoder>
176                         <pattern>%X{EntryTimestamp}|%date{yyyy-MM-dd'T'HH:mm:ss.SSSXXX,UTC}|%X{RequestID}|%X{ServiceInstanceId}|%.20thread|%X{VirtualServerName}|%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDescription}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{ElapsedTime}|%X{ServerFQDN}|%X{RemoteHost}|%X{ClassName}|%X{Unused}|%X{ProcessKey}|%X{CustomField1}|%X{CustomField2}|%X{CustomField3}|%X{CustomField4}|%msg%n
177                         </pattern>
178                 </encoder>
179                 <rollingPolicy
180                                 class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
181                         <FileNamePattern>${logDirectory}/security.%d{yyyy-MM-dd}.%i.log.zip
182                         </FileNamePattern>
183                         <maxFileSize>50MB</maxFileSize>
184                         <maxHistory>20</maxHistory>
185                         <totalSizeCap>1GB</totalSizeCap>
186                 </rollingPolicy>
187         </appender>
188
189         <appender
190                 name="asyncEELFSecurity"
191                 class="ch.qos.logback.classic.AsyncAppender">
192                 <queueSize>256</queueSize>
193                 <appender-ref ref="SECURITY" />
194         </appender>
195         <!-- logback jms appenders & loggers definition starts here -->
196         <appender
197                 name="auditLogs"
198                 class="ch.qos.logback.core.rolling.RollingFileAppender">
199                 <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
200                 </filter>
201                 <file>${logDirectory}/Audits.log</file>
202                 <rollingPolicy
203                                 class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
204                         <fileNamePattern>${logDirectory}/Audits-%d{yyyy-MM-dd}.%i.log.zip
205                         </fileNamePattern>
206                         <maxFileSize>50MB</maxFileSize>
207                         <maxHistory>20</maxHistory>
208                         <totalSizeCap>1GB</totalSizeCap>
209                 </rollingPolicy>
210                 <encoder>
211                         <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
212                 </encoder>
213         </appender>
214
215         <appender
216                 name="perfLogs"
217                 class="ch.qos.logback.core.rolling.RollingFileAppender">
218                 <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
219                 </filter>
220                 <file>${logDirectory}/Perform.log</file>
221                 <rollingPolicy
222                                 class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
223                         <fileNamePattern>${logDirectory}/Perform--%d{yyyy-MM-dd}.%i.log.zip
224                         </fileNamePattern>
225                         <maxFileSize>50MB</maxFileSize>
226                         <maxHistory>20</maxHistory>
227                         <totalSizeCap>1GB</totalSizeCap>
228                 </rollingPolicy>
229                 <encoder>
230                         <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern>
231                 </encoder>
232         </appender>
233
234         <logger
235                 name="org.onap.aaf"
236                 level="DEBUG">
237                 <appender-ref ref="DEBUG" />
238         </logger>
239         <logger
240                         name="org.hibernate"
241                         level="INFO">
242                 <appender-ref ref="DEBUG" />
243         </logger>
244         <logger
245                         name="org.apache.camel.Tracing"
246                         level="INFO">
247                 <appender-ref ref="DEBUG" />
248         </logger>
249
250         <logger
251                 name="org.apache"
252                 level="INFO">
253                 <appender-ref ref="DEBUG" />
254         </logger>
255         <!-- Spring related loggers -->
256         <logger
257                 name="org.springframework"
258                 level="INFO">
259                 <appender-ref ref="DEBUG" />
260         </logger>
261
262         <!-- CLAMP related loggers -->
263         <logger
264                 name="org.onap.clamp"
265                 level="DEBUG">
266                 <appender-ref ref="ERROR" />
267                 <appender-ref ref="DEBUG" />
268         </logger>
269
270         <logger
271                 name="com.att.eelf.error"
272                 level="OFF">
273                 <appender-ref ref="ERROR" />
274         </logger>
275         <!-- EELF related loggers -->
276         <logger
277                 name="com.att.eelf.audit"
278                 level="INFO"
279                 additivity="false">
280                 <appender-ref ref="asyncEELFAudit" />
281         </logger>
282         <logger
283                 name="com.att.eelf.metrics"
284                 level="DEBUG"
285                 additivity="false">
286                 <appender-ref ref="asyncEELFMetrics" />
287         </logger>
288         <logger
289                 name="com.att.eelf.security"
290                 level="DEBUG"
291                 additivity="false">
292                 <appender-ref ref="asyncEELFSecurity" />
293         </logger>
294
295         <!-- logback internals logging -->
296         <logger
297                 name="ch.qos.logback.classic"
298                 level="INFO" />
299         <logger
300                 name="ch.qos.logback.core"
301                 level="INFO" />
302         <logger
303                 name="AuditRecord"
304                 level="INFO"
305                 additivity="false">
306                 <appender-ref ref="auditLogs" />
307         </logger>
308         <logger
309                 name="AuditRecord_DirectCall"
310                 level="INFO"
311                 additivity="false">
312                 <appender-ref ref="auditLogs" />
313         </logger>
314         <logger
315                 name="PerfTrackerRecord"
316                 level="INFO"
317                 additivity="false">
318                 <appender-ref ref="perfLogs" />
319         </logger>
320         <!-- logback jms appenders & loggers definition ends here -->
321
322         <root level="DEBUG">
323                 <appender-ref ref="DEBUG" />
324                 <appender-ref ref="STDOUT" />
325                 <appender-ref ref="AUDIT" />
326         <appender-ref ref="METRIC" />
327         <appender-ref ref="ERROR" />
328         </root>
329 </included>