1 <configuration scan='{{.Values.log.scan.enabled}}' scanPeriod='{{.Values.log.scan.seconds}} seconds' debug='{{.Values.log.debug}}'>
3 <!-- Component-specific settings. Will ALWAYS change. -->
5 <property name="componentName" value='{{default "UNSET_COMPONENT" .Values.log.componentName}}'/>
6 <property name="subcomponentName" value='{{default "UNSET_SUBCOMPONENT" .Values.log.subcomponentName}}'/>
8 <!-- Common settings. Will SOMETIMES change. -->
10 <property name="serverName" value='{{.Values.log.serverName}}'/>
11 <property name="logDir" value='{{.Values.log.logDir}}'/>
12 <property name="maxFileSize" value='{{.Values.log.maxFileSize}}'/>
13 <property name="maxHistory" value='{{.Values.log.maxHistory}}'/>
14 <property name="totalSizeCap" value='{{.Values.log.totalSizeCap}}'/>
15 <property name="queueSize" value='{{.Values.log.queueSize}}'/>
17 <!-- /////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
18 <!-- /////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
19 <!-- /////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
20 <!-- /////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
22 <property name="p_tim" value="%d{"yyyy-MM-dd'T'HH:mm:ss.SSSXXX", UTC}"/>
23 <property name="p_lvl" value="%level"/>
24 <property name="p_log" value="%logger"/>
25 <property name="p_mdc" value="%replace(%replace(%mdc){'\t','\\\\t'}){'\n', '\\\\n'}"/>
26 <property name="p_msg" value="%replace(%replace(%msg){'\t', '\\\\t'}){'\n','\\\\n'}"/>
27 <property name="p_exc" value="%replace(%replace(%rootException){'\t', '\\\\t'}){'\n','\\\\n'}"/>
28 <property name="p_mak" value="%replace(%replace(%marker){'\t', '\\\\t'}){'\n','\\\\n'}"/>
29 <property name="p_thr" value="%thread"/>
31 <!-- Appender-specific properties. -->
33 <!-- Console (human-readable) logging -->
37 value="%nopexception${p_log}\t${p_tim}\t${p_lvl}\t%message\t${p_mdc}\t%rootException\t${p_mak}\t${p_thr}%n"/>
39 <!-- Beats (indexable) output. -->
41 <property name="beatsPattern" 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"/>
42 <property name="beatsLogRoot" value="${logDir}/beats"/>
43 <property name="beatsLogDirectory" value="${beatsLogRoot}/${componentName}/${subcomponentName}"/>
44 <property name="beatsLogFilename" value="${serverName}"/>
46 <!-- EELF (legacy) output. -->
48 <property name="eelfAuditLogName" value="${serverName}-audit"/>
49 <property name="eelfMetricsLogName" value="${serverName}-metrics"/>
50 <property name="eelfDebugLogName" value="${serverName}-debug"/>
51 <property name="eelfErrorLogName" value="${serverName}-error"/>
52 <property name="eelfApplicationLogName" value="${serverName}-application"/>
54 name="eelfAuditPattern"
55 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}|%logger|||||||%msg%n"/>
57 name="eelfMetricsPattern"
58 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}|%logger|||%X{TargetVirtualEntity}|||||%msg%n"/>
60 name="eelfErrorPattern"
61 value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX}|%X{RequestId}|%thread|%X{ServiceName}|%X{PartnerName}|%X{TargetEntity}|%X{TargetServiceName}|%.-5level|%X{ErrorCode}|%X{ErrorDesc}|%msg%n"/>
63 name="eelfDebugPattern"
64 value="%d{yyyy-MM-dd'T'HH:mm:ss.SSSXXX, UTC}|%X{RequestId}|%msg%n"/>
66 name="eelfApplicationPattern"
67 value="${eelfErrorPattern}" />
68 <property name="eelfLogRoot" value="${logDir}/eelf"/>
69 <property name="eelfLogDirectory" value="${eelfLogRoot}/${componentName}/${subcomponentName}"/>
71 <!-- /////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
72 <!-- /////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
73 <!-- /////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
74 <!-- /////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
76 <!-- Console output. /////////////////////////////////////////// -->
78 <appender class="ch.qos.logback.core.ConsoleAppender" name="Console">
80 <pattern>${consolePattern}</pattern>
84 <appender name="ConsoleAsync" class="ch.qos.logback.classic.AsyncAppender">
85 <queueSize>${queueSize}</queueSize>
86 <appender-ref ref="Console"/>
89 <!-- Indexable output. /////////////////////////////////////////// -->
91 <appender name="Beats" class="ch.qos.logback.core.rolling.RollingFileAppender">
92 <file>${beatsLogDirectory}/${beatsLogFilename}.log</file>
93 <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
94 <fileNamePattern>${beatsLogDirectory}/${beatsLogFilename}.%i.log.%d</fileNamePattern>
95 <maxFileSize>${maxFileSize}</maxFileSize>
96 <maxHistory>${maxHistory}</maxHistory>
97 <totalSizeCap>${totalSizeCap}</totalSizeCap>
100 <pattern>${beatsPattern}</pattern>
104 <appender name="BeatsAsync" class="ch.qos.logback.classic.AsyncAppender">
105 <queueSize>${queueSize}</queueSize>
106 <appender-ref ref="Beats"/>
109 <!-- Syslog output. -->
111 <appender name="Syslog" class="ch.qos.logback.classic.net.SyslogAppender">
112 <syslogHost>{{default "localhost" .Values.log.syslog.host}}</syslogHost>
113 <port>{{default "514" .Values.log.syslog.port}}</port>
114 <facility>{{default "USER" .Values.log.syslog.facility}}</facility>
117 <appender name="SyslogAsync" class="ch.qos.logback.classic.AsyncAppender">
118 <queueSize>${queueSize}</queueSize>
119 <appender-ref ref="Syslog"/>
122 <!-- EELF output. -->
126 <appender name="EELFAudit" class="ch.qos.logback.core.rolling.RollingFileAppender">
127 <file>${eelfLogDirectory}/${eelfAuditLogName}.log</file>
128 <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
129 <fileNamePattern>${eelfLogDirectory}/${eelfAuditLogName}.%i.log.%d</fileNamePattern>
130 <maxFileSize>${maxFileSize}</maxFileSize>
131 <maxHistory>${maxHistory}</maxHistory>
132 <totalSizeCap>${totalSizeCap}</totalSizeCap>
135 <pattern>${eelfAuditPattern}</pattern>
139 <appender name="EELFAuditAsync" class="ch.qos.logback.classic.AsyncAppender">
140 <queueSize>${queueSize}</queueSize>
141 <appender-ref ref="EELFAudit"/>
144 <!-- EELF metrics. -->
146 <appender name="EELFMetrics" class="ch.qos.logback.core.rolling.RollingFileAppender">
147 <file>${eelfLogDirectory}/${eelfMetricsLogName}.log</file>
148 <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
149 <fileNamePattern>${eelfLogDirectory}/${eelfMetricsLogName}.%i.log.%d</fileNamePattern>
150 <maxFileSize>${maxFileSize}</maxFileSize>
151 <maxHistory>${maxHistory}</maxHistory>
152 <totalSizeCap>${totalSizeCap}</totalSizeCap>
155 <pattern>${eelfMetricsPattern}</pattern>
159 <appender name="EELFMetricsAsync" class="ch.qos.logback.classic.AsyncAppender">
160 <queueSize>${queueSize}</queueSize>
161 <appender-ref ref="EELFMetrics"/>
166 <appender name="EELFDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
167 <file>${eelfLogDirectory}/${eelfDebugLogName}.log</file>
168 <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
169 <fileNamePattern>${eelfLogDirectory}/${eelfDebugLogName}.%i.log.%d</fileNamePattern>
170 <maxFileSize>${maxFileSize}</maxFileSize>
171 <maxHistory>${maxHistory}</maxHistory>
172 <totalSizeCap>${totalSizeCap}</totalSizeCap>
175 <pattern>${eelfDebugPattern}</pattern>
179 <appender name="EELFDebugAsync" class="ch.qos.logback.classic.AsyncAppender">
180 <queueSize>${queueSize}</queueSize>
181 <appender-ref ref="EELFDebug"/>
186 <appender name="EELFError" class="ch.qos.logback.core.rolling.RollingFileAppender">
187 <file>${eelfLogDirectory}/${eelfErrorLogName}.log</file>
188 <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
189 <fileNamePattern>${eelfLogDirectory}/${eelfErrorLogName}.%i.log.%d</fileNamePattern>
190 <maxFileSize>${maxFileSize}</maxFileSize>
191 <maxHistory>${maxHistory}</maxHistory>
192 <totalSizeCap>${totalSizeCap}</totalSizeCap>
195 <pattern>${eelfErrorPattern}</pattern>
199 <appender name="EELFErrorAsync" class="ch.qos.logback.classic.AsyncAppender">
200 <queueSize>${queueSize}</queueSize>
201 <appender-ref ref="EELFError"/>
204 <!-- EELF general -->
206 <appender name="EELF" class="ch.qos.logback.core.rolling.RollingFileAppender">
207 <file>${eelfLogDirectory}/${eelfApplicationLogName}.log</file>
208 <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
209 <fileNamePattern>${eelfLogDirectory}/${eelfApplicationLogName}.%i.log.%d</fileNamePattern>
210 <maxFileSize>${maxFileSize}</maxFileSize>
211 <maxHistory>${maxHistory}</maxHistory>
212 <totalSizeCap>${totalSizeCap}</totalSizeCap>
215 <pattern>${eelfApplicationPattern}</pattern>
219 <appender name="EELFAsync" class="ch.qos.logback.classic.AsyncAppender">
220 <queueSize>${queueSize}</queueSize>
221 <appender-ref ref="EELF"/>
224 <!-- ///////////////////////////////////////////////////////////////////// -->
225 <!-- ///////////////////////////////////////////////////////////////////// -->
226 <!-- ///////////////////////////////////////////////////////////////////// -->
227 <!-- ///////////////////////////////////////////////////////////////////// -->
229 <!-- EELF loggers. -->
231 {{if .Values.log.root.eelf}}
232 <logger name="com.att.eelf.audit" level="info" additivity="false">
233 <appender-ref ref="EELFAuditAsync"/>
236 <logger name="com.att.eelf.metrics" level="info" additivity="false">
237 <appender-ref ref="EELFMetricsAsync"/>
240 <logger name="com.att.eelf.debug" level="debug" additivity="false">
241 <appender-ref ref="EELFDebugAsync"/>
244 <logger name="com.att.eelf.error" level="error" additivity="false">
245 <appender-ref ref="EELFErrorAsync"/>
249 <!-- Root logger. -->
251 <root level='{{.Values.log.root.level}}'>
252 {{ if .Values.log.root.beats }}
253 <appender-ref ref="BeatsAsync"/>
255 {{ if .Values.log.root.console }}
256 <appender-ref ref="ConsoleAsync"/>
258 {{ if .Values.log.root.eelf }}
259 <appender-ref ref="EELFAsync"/>
263 <!-- Named loggers. -->
265 {{- range .Values.log.loggers }}
266 <logger name='{{.name}}' level='{{.level}}' additivity="false">
268 <appender-ref ref="BeatsAsync"/>
271 <appender-ref ref="ConsoleAsync"/>
274 <appender-ref ref="SyslogAsync"/>
277 <appender-ref ref="EELFAsync"/>