Skip to content

Commit 060522f

Browse files
authored
Merge pull request #806 from cantaloupe-project/logback
Rewrite logback.xml to comply with its schema requirements.
2 parents cae7899 + ff3cb1b commit 060522f

File tree

1 file changed

+147
-102
lines changed

1 file changed

+147
-102
lines changed

src/main/resources/logback.xml

Lines changed: 147 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -1,145 +1,165 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<configuration>
33

4+
<!-- Console Appenders for Application Logs -->
45
<appender name="AppStdoutLog" class="ch.qos.logback.core.ConsoleAppender">
56
<target>System.out</target>
67
<filter class="edu.illinois.library.cantaloupe.logging.ApplicationLogFilter" />
78
<filter class="edu.illinois.library.cantaloupe.logging.StandardOutputLogFilter" />
8-
<if condition='property("log.application.ConsoleAppender.logstash.enabled").contains("true")'>
9-
<then>
10-
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
11-
<includeContext>false</includeContext>
12-
</encoder>
13-
</then>
14-
<else>
15-
<encoder>
16-
<!-- %white and %gray seem to be inverted as of version 1.1.7 -->
17-
<pattern>%d{HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg%n</pattern>
18-
</encoder>
19-
</else>
20-
</if>
9+
<encoder>
10+
<!-- %white and %gray seem to be inverted as of version 1.1.7 -->
11+
<pattern>%d{HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg%n</pattern>
12+
</encoder>
13+
<withJansi>false</withJansi>
14+
</appender>
15+
16+
<appender name="AppStdoutLogLogstash" class="ch.qos.logback.core.ConsoleAppender">
17+
<target>System.out</target>
18+
<filter class="edu.illinois.library.cantaloupe.logging.ApplicationLogFilter" />
19+
<filter class="edu.illinois.library.cantaloupe.logging.StandardOutputLogFilter" />
20+
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
21+
<includeContext>false</includeContext>
22+
</encoder>
2123
<withJansi>false</withJansi>
2224
</appender>
2325

2426
<appender name="AppStderrLog" class="ch.qos.logback.core.ConsoleAppender">
2527
<target>System.err</target>
2628
<filter class="edu.illinois.library.cantaloupe.logging.ApplicationLogFilter" />
2729
<filter class="edu.illinois.library.cantaloupe.logging.StandardErrorLogFilter" />
28-
<if condition='property("log.application.stderr.ConsoleAppender.logstash.enabled").contains("true")'>
29-
<then>
30-
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
31-
<includeContext>false</includeContext>
32-
</encoder>
33-
</then>
34-
<else>
35-
<encoder>
36-
<pattern>%d{HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg%n</pattern>
37-
</encoder>
38-
</else>
39-
</if>
30+
<encoder>
31+
<pattern>%d{HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg%n</pattern>
32+
</encoder>
33+
<withJansi>false</withJansi>
34+
</appender>
35+
36+
<appender name="AppStderrLogLogstash" class="ch.qos.logback.core.ConsoleAppender">
37+
<target>System.err</target>
38+
<filter class="edu.illinois.library.cantaloupe.logging.ApplicationLogFilter" />
39+
<filter class="edu.illinois.library.cantaloupe.logging.StandardErrorLogFilter" />
40+
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
41+
<includeContext>false</includeContext>
42+
</encoder>
4043
<withJansi>false</withJansi>
4144
</appender>
4245

46+
<!-- File Appenders for Application Logs -->
4347
<if condition='property("log.application.FileAppender.enabled").contains("true")'>
4448
<then>
4549
<appender name="AppFileLog" class="ch.qos.logback.core.FileAppender">
4650
<filter class="edu.illinois.library.cantaloupe.logging.ApplicationLogFilter" />
4751
<file>${log.application.FileAppender.pathname}</file>
48-
<if condition='property("log.application.FileAppender.logstash.enabled").contains("true")'>
49-
<then>
50-
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
51-
<includeContext>false</includeContext>
52-
</encoder>
53-
</then>
54-
<else>
55-
<encoder>
56-
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
57-
</encoder>
58-
</else>
59-
</if>
52+
<encoder>
53+
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
54+
</encoder>
55+
</appender>
56+
</then>
57+
</if>
58+
59+
<if condition='property("log.application.FileAppender.enabled").contains("true") &amp;&amp; property("log.application.FileAppender.logstash.enabled").contains("true")'>
60+
<then>
61+
<appender name="AppFileLogLogstash" class="ch.qos.logback.core.FileAppender">
62+
<filter class="edu.illinois.library.cantaloupe.logging.ApplicationLogFilter" />
63+
<file>${log.application.FileAppender.pathname}</file>
64+
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
65+
<includeContext>false</includeContext>
66+
</encoder>
6067
</appender>
6168
</then>
6269
</if>
6370

71+
<!-- Error File Appenders -->
6472
<if condition='property("log.error.FileAppender.enabled").contains("true")'>
6573
<then>
6674
<appender name="ErrorFileLog" class="ch.qos.logback.core.FileAppender">
6775
<filter class="edu.illinois.library.cantaloupe.logging.ApplicationErrorLogFilter" />
6876
<file>${log.error.FileAppender.pathname}</file>
69-
<if condition='property("log.error.FileAppender.logstash.enabled").contains("true")'>
70-
<then>
71-
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
72-
<includeContext>false</includeContext>
73-
</encoder>
74-
</then>
75-
<else>
76-
<encoder>
77-
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
78-
</encoder>
79-
</else>
80-
</if>
77+
<encoder>
78+
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
79+
</encoder>
8180
</appender>
8281
</then>
8382
</if>
8483

84+
<if condition='property("log.error.FileAppender.enabled").contains("true") &amp;&amp; property("log.error.FileAppender.logstash.enabled").contains("true")'>
85+
<then>
86+
<appender name="ErrorFileLogLogstash" class="ch.qos.logback.core.FileAppender">
87+
<filter class="edu.illinois.library.cantaloupe.logging.ApplicationErrorLogFilter" />
88+
<file>${log.error.FileAppender.pathname}</file>
89+
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
90+
<includeContext>false</includeContext>
91+
</encoder>
92+
</appender>
93+
</then>
94+
</if>
95+
96+
<!-- Rolling File Appenders for Application Logs -->
8597
<if condition='property("log.application.RollingFileAppender.enabled").contains("true")'>
8698
<then>
8799
<appender name="AppRollingFileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
88100
<filter class="edu.illinois.library.cantaloupe.logging.ApplicationLogFilter" />
89101
<file>${log.application.RollingFileAppender.pathname}</file>
90-
<if condition='property("log.application.RollingFileAppender.policy").contains("TimeBasedRollingPolicy")'>
91-
<then>
92-
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
93-
<fileNamePattern>${log.application.RollingFileAppender.TimeBasedRollingPolicy.filename_pattern}</fileNamePattern>
94-
<maxHistory>${log.application.RollingFileAppender.TimeBasedRollingPolicy.max_history}</maxHistory>
95-
</rollingPolicy>
96-
</then>
97-
</if>
98-
<if condition='property("log.application.RollingFileAppender.logstash.enabled").contains("true")'>
99-
<then>
100-
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
101-
<includeContext>false</includeContext>
102-
</encoder>
103-
</then>
104-
<else>
105-
<encoder>
106-
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
107-
</encoder>
108-
</else>
109-
</if>
102+
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
103+
<fileNamePattern>${log.application.RollingFileAppender.TimeBasedRollingPolicy.filename_pattern}</fileNamePattern>
104+
<maxHistory>${log.application.RollingFileAppender.TimeBasedRollingPolicy.max_history}</maxHistory>
105+
</rollingPolicy>
106+
<encoder>
107+
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
108+
</encoder>
109+
</appender>
110+
</then>
111+
</if>
112+
113+
<if condition='property("log.application.RollingFileAppender.enabled").contains("true") &amp;&amp; property("log.application.RollingFileAppender.logstash.enabled").contains("true")'>
114+
<then>
115+
<appender name="AppRollingFileLogLogstash" class="ch.qos.logback.core.rolling.RollingFileAppender">
116+
<filter class="edu.illinois.library.cantaloupe.logging.ApplicationLogFilter" />
117+
<file>${log.application.RollingFileAppender.pathname}</file>
118+
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
119+
<fileNamePattern>${log.application.RollingFileAppender.TimeBasedRollingPolicy.filename_pattern}</fileNamePattern>
120+
<maxHistory>${log.application.RollingFileAppender.TimeBasedRollingPolicy.max_history}</maxHistory>
121+
</rollingPolicy>
122+
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
123+
<includeContext>false</includeContext>
124+
</encoder>
110125
</appender>
111126
</then>
112127
</if>
113128

129+
<!-- Rolling File Appenders for Error Logs -->
114130
<if condition='property("log.error.RollingFileAppender.enabled").contains("true")'>
115131
<then>
116132
<appender name="ErrorRollingFileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
117133
<filter class="edu.illinois.library.cantaloupe.logging.ApplicationErrorLogFilter" />
118134
<file>${log.error.RollingFileAppender.pathname}</file>
119-
<if condition='property("log.error.RollingFileAppender.policy").contains("TimeBasedRollingPolicy")'>
120-
<then>
121-
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
122-
<fileNamePattern>${log.error.RollingFileAppender.TimeBasedRollingPolicy.filename_pattern}</fileNamePattern>
123-
<maxHistory>${log.error.RollingFileAppender.TimeBasedRollingPolicy.max_history}</maxHistory>
124-
</rollingPolicy>
125-
</then>
126-
</if>
127-
<if condition='property("log.error.RollingFileAppender.logstash.enabled").contains("true")'>
128-
<then>
129-
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
130-
<includeContext>false</includeContext>
131-
</encoder>
132-
</then>
133-
<else>
134-
<encoder>
135-
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
136-
</encoder>
137-
</else>
138-
</if>
135+
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
136+
<fileNamePattern>${log.error.RollingFileAppender.TimeBasedRollingPolicy.filename_pattern}</fileNamePattern>
137+
<maxHistory>${log.error.RollingFileAppender.TimeBasedRollingPolicy.max_history}</maxHistory>
138+
</rollingPolicy>
139+
<encoder>
140+
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
141+
</encoder>
142+
</appender>
143+
</then>
144+
</if>
145+
146+
<if condition='property("log.error.RollingFileAppender.enabled").contains("true") &amp;&amp; property("log.error.RollingFileAppender.logstash.enabled").contains("true")'>
147+
<then>
148+
<appender name="ErrorRollingFileLogLogstash" class="ch.qos.logback.core.rolling.RollingFileAppender">
149+
<filter class="edu.illinois.library.cantaloupe.logging.ApplicationErrorLogFilter" />
150+
<file>${log.error.RollingFileAppender.pathname}</file>
151+
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
152+
<fileNamePattern>${log.error.RollingFileAppender.TimeBasedRollingPolicy.filename_pattern}</fileNamePattern>
153+
<maxHistory>${log.error.RollingFileAppender.TimeBasedRollingPolicy.max_history}</maxHistory>
154+
</rollingPolicy>
155+
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
156+
<includeContext>false</includeContext>
157+
</encoder>
139158
</appender>
140159
</then>
141160
</if>
142161

162+
<!-- Syslog Appenders -->
143163
<if condition='property("log.application.SyslogAppender.enabled").contains("true")'>
144164
<then>
145165
<appender name="AppSyslogLog" class="ch.qos.logback.classic.net.SyslogAppender">
@@ -151,6 +171,7 @@
151171
</then>
152172
</if>
153173

174+
<!-- Access Log Appenders -->
154175
<appender name="AccessStdoutLog" class="ch.qos.logback.core.ConsoleAppender">
155176
<filter class="edu.illinois.library.cantaloupe.logging.AccessLogFilter" />
156177
<encoder>
@@ -176,14 +197,10 @@
176197
<appender name="AccessRollingFileLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
177198
<filter class="edu.illinois.library.cantaloupe.logging.AccessLogFilter" />
178199
<file>${log.access.RollingFileAppender.pathname}</file>
179-
<if condition='property("log.access.RollingFileAppender.policy").contains("TimeBasedRollingPolicy")'>
180-
<then>
181-
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
182-
<fileNamePattern>${log.access.RollingFileAppender.TimeBasedRollingPolicy.filename_pattern}</fileNamePattern>
183-
<maxHistory>${log.access.RollingFileAppender.TimeBasedRollingPolicy.max_history}</maxHistory>
184-
</rollingPolicy>
185-
</then>
186-
</if>
200+
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
201+
<fileNamePattern>${log.access.RollingFileAppender.TimeBasedRollingPolicy.filename_pattern}</fileNamePattern>
202+
<maxHistory>${log.access.RollingFileAppender.TimeBasedRollingPolicy.max_history}</maxHistory>
203+
</rollingPolicy>
187204
<encoder>
188205
<!-- already in W3C Extended Log File Format -->
189206
<pattern>%msg%n</pattern>
@@ -203,6 +220,7 @@
203220
</then>
204221
</if>
205222

223+
<!-- Access Logger Configuration -->
206224
<logger name="edu.illinois.library.cantaloupe.logging.AccessLogService" additivity="false">
207225
<if condition='property("log.access.ConsoleAppender.enabled").contains("true")'>
208226
<then>
@@ -226,6 +244,7 @@
226244
</if>
227245
</logger>
228246

247+
<!-- Root Logger Configuration -->
229248
<root level="${log.application.level}">
230249
<!--
231250
Access log appenders
@@ -254,32 +273,58 @@
254273
<!--
255274
Application log appenders
256275
-->
257-
<if condition='property("log.application.ConsoleAppender.enabled").contains("true")'>
276+
<if condition='property("log.application.ConsoleAppender.enabled").contains("true") &amp;&amp; !property("log.application.ConsoleAppender.logstash.enabled").contains("true")'>
258277
<then>
259278
<appender-ref ref="AppStdoutLog" />
260279
<appender-ref ref="AppStderrLog" />
261280
</then>
262281
</if>
263-
<if condition='property("log.application.FileAppender.enabled").contains("true")'>
282+
<if condition='property("log.application.ConsoleAppender.enabled").contains("true") &amp;&amp; property("log.application.ConsoleAppender.logstash.enabled").contains("true")'>
283+
<then>
284+
<appender-ref ref="AppStdoutLogLogstash" />
285+
<appender-ref ref="AppStderrLogLogstash" />
286+
</then>
287+
</if>
288+
<if condition='property("log.application.FileAppender.enabled").contains("true") &amp;&amp; !property("log.application.FileAppender.logstash.enabled").contains("true")'>
264289
<then>
265290
<appender-ref ref="AppFileLog" />
266291
</then>
267292
</if>
268-
<if condition='property("log.error.FileAppender.enabled").contains("true")'>
293+
<if condition='property("log.application.FileAppender.enabled").contains("true") &amp;&amp; property("log.application.FileAppender.logstash.enabled").contains("true")'>
294+
<then>
295+
<appender-ref ref="AppFileLogLogstash" />
296+
</then>
297+
</if>
298+
<if condition='property("log.error.FileAppender.enabled").contains("true") &amp;&amp; !property("log.error.FileAppender.logstash.enabled").contains("true")'>
269299
<then>
270300
<appender-ref ref="ErrorFileLog" />
271301
</then>
272302
</if>
273-
<if condition='property("log.application.RollingFileAppender.enabled").contains("true")'>
303+
<if condition='property("log.error.FileAppender.enabled").contains("true") &amp;&amp; property("log.error.FileAppender.logstash.enabled").contains("true")'>
304+
<then>
305+
<appender-ref ref="ErrorFileLogLogstash" />
306+
</then>
307+
</if>
308+
<if condition='property("log.application.RollingFileAppender.enabled").contains("true") &amp;&amp; !property("log.application.RollingFileAppender.logstash.enabled").contains("true")'>
274309
<then>
275310
<appender-ref ref="AppRollingFileLog" />
276311
</then>
277312
</if>
278-
<if condition='property("log.error.RollingFileAppender.enabled").contains("true")'>
313+
<if condition='property("log.application.RollingFileAppender.enabled").contains("true") &amp;&amp; property("log.application.RollingFileAppender.logstash.enabled").contains("true")'>
314+
<then>
315+
<appender-ref ref="AppRollingFileLogLogstash" />
316+
</then>
317+
</if>
318+
<if condition='property("log.error.RollingFileAppender.enabled").contains("true") &amp;&amp; !property("log.error.RollingFileAppender.logstash.enabled").contains("true")'>
279319
<then>
280320
<appender-ref ref="ErrorRollingFileLog" />
281321
</then>
282322
</if>
323+
<if condition='property("log.error.RollingFileAppender.enabled").contains("true") &amp;&amp; property("log.error.RollingFileAppender.logstash.enabled").contains("true")'>
324+
<then>
325+
<appender-ref ref="ErrorRollingFileLogLogstash" />
326+
</then>
327+
</if>
283328
<if condition='property("log.application.SyslogAppender.enabled").contains("true")'>
284329
<then>
285330
<appender-ref ref="AppSyslogLog" />

0 commit comments

Comments
 (0)