1 <?xml version="1.0" encoding="UTF-8"?>
3 # Copyright © 2018 Amdocs, Bell Canada
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
18 <configuration scan="{{ .Values.log.scan.enabled }}" debug="{{ .Values.log.debug }}">
20 <property name="componentName" value='{{default "UNSET_COMPONENT" .Values.log.componentName}}'/>
21 <property name="subcomponentName" value='{{default "UNSET_SUBCOMPONENT" .Values.log.subcomponentName}}'/>
23 <property name="logDir" value="{{ .Values.log.logDir }}" />
24 <property name="queueSize" value="{{ .Values.log.queueSize }}"/>
26 <property name="p_tim" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}"/>
27 <property name="p_lvl" value="%level"/>
28 <property name="p_log" value="%logger"/>
29 <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}"/>
30 <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}"/>
31 <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}"/>
32 <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>
33 <property name="p_thr" value="%thread"/>
34 <property name="pattern" 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"/>
36 <property name="errorLogName" value="error" />
37 <property name="metricsLogName" value="metrics" />
38 <property name="auditLogName" value="audit" />
39 <property name="debugLogName" value="debug" />
41 <property name="errorPattern" value="${p_tim}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n" />
42 <property name="debugPattern" value="${p_tim}|%X{RequestId}|%msg%n\t${p_mdc}\t${p_msg}\t${p_exc}\t${p_mak}\t%n" />
43 <property name="auditPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||||||%msg%n" />
44 <property name="metricPattern" value="%X{BeginTimestamp}|%X{EndTimestamp}|%X{RequestId}|%X{ServiceInstanceId}|%thread||%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%X{StatusCode}|%X{ResponseCode}|%X{ResponseDesc}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}|%X{ServerIPAddress}|%X{Timer}|%X{ServerFQDN}|%X{RemoteHost}||||%X{TargetVirtualEntity}|||||%msg%n" />
46 <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
48 <!-- Console (human-readable) logging -->
49 <property name="consolePattern" value="%nopexception${p_log}\t${p_tim}\t${p_lvl}\t%message\t${p_mdc}\t%rootException\t${p_mak}\t${p_thr}%n"/>
51 <appender name="EELFAudit"
52 class="ch.qos.logback.core.rolling.RollingFileAppender">
53 <file>${logDirectory}/${auditLogName}.log</file>
54 <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
55 <fileNamePattern>${logDirectory}/${auditLogName}.log.%d</fileNamePattern>
58 <pattern>${auditPattern}</pattern>
62 <appender name="asyncEELFAudit" class="ch.qos.logback.classic.AsyncAppender">
63 <queueSize>${queueSize}</queueSize>
64 <appender-ref ref="EELFAudit" />
67 <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">
68 <file>${logDirectory}/${metricsLogName}.log</file>
70 class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
71 <fileNamePattern>${logDirectory}/${metricsLogName}.log.%d</fileNamePattern>
74 <pattern>${metricPattern}</pattern>
78 <appender name="asyncEELFMetrics" class="ch.qos.logback.classic.AsyncAppender">
79 <queueSize>${queueSize}</queueSize>
80 <appender-ref ref="EELFMetrics"/>
83 <appender name="EELFError"
84 class="ch.qos.logback.core.rolling.RollingFileAppender">
85 <file>${logDirectory}/${errorLogName}.log</file>
87 class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
88 <fileNamePattern>${logDirectory}/${errorLogName}.log.%d</fileNamePattern>
90 <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
94 <pattern>${errorPattern}</pattern>
98 <appender name="asyncEELFError" class="ch.qos.logback.classic.AsyncAppender">
99 <queueSize>${queueSize}</queueSize>
100 <appender-ref ref="EELFError"/>
103 <appender name="EELFDebug"
104 class="ch.qos.logback.core.rolling.RollingFileAppender">
105 <file>${logDirectory}/${debugLogName}.log</file>
107 class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
108 <fileNamePattern>${logDirectory}/${debugLogName}.log.%d</fileNamePattern>
111 <pattern>${debugPattern}</pattern>
115 <appender name="asyncEELFDebug" class="ch.qos.logback.classic.AsyncAppender">
116 <queueSize>${queueSize}</queueSize>
117 <appender-ref ref="EELFDebug" />
118 <includeCallerData>true</includeCallerData>
121 <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
123 <pattern>${consolePattern}</pattern>
127 <logger name="com.att.eelf.audit" level="info" additivity="false">
128 <appender-ref ref="asyncEELFAudit" />
131 <logger name="com.att.eelf.metrics" level="info" additivity="false">
132 <appender-ref ref="asyncEELFMetrics" />
135 <logger name="com.att.eelf.error" level="debug" additivity="false">
136 <appender-ref ref="asyncEELFError" />
139 <root level="{{ .Values.log.root.level }}">
140 <appender-ref ref="asyncEELFDebug" />
141 <appender-ref ref="STDOUT" />