|
1 | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | 2 | <configuration> |
3 | 3 |
|
| 4 | + <!-- Console Appenders for Application Logs --> |
4 | 5 | <appender name="AppStdoutLog" class="ch.qos.logback.core.ConsoleAppender"> |
5 | 6 | <target>System.out</target> |
6 | 7 | <filter class="edu.illinois.library.cantaloupe.logging.ApplicationLogFilter" /> |
7 | 8 | <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> |
21 | 23 | <withJansi>false</withJansi> |
22 | 24 | </appender> |
23 | 25 |
|
24 | 26 | <appender name="AppStderrLog" class="ch.qos.logback.core.ConsoleAppender"> |
25 | 27 | <target>System.err</target> |
26 | 28 | <filter class="edu.illinois.library.cantaloupe.logging.ApplicationLogFilter" /> |
27 | 29 | <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> |
40 | 43 | <withJansi>false</withJansi> |
41 | 44 | </appender> |
42 | 45 |
|
| 46 | + <!-- File Appenders for Application Logs --> |
43 | 47 | <if condition='property("log.application.FileAppender.enabled").contains("true")'> |
44 | 48 | <then> |
45 | 49 | <appender name="AppFileLog" class="ch.qos.logback.core.FileAppender"> |
46 | 50 | <filter class="edu.illinois.library.cantaloupe.logging.ApplicationLogFilter" /> |
47 | 51 | <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") && 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> |
60 | 67 | </appender> |
61 | 68 | </then> |
62 | 69 | </if> |
63 | 70 |
|
| 71 | + <!-- Error File Appenders --> |
64 | 72 | <if condition='property("log.error.FileAppender.enabled").contains("true")'> |
65 | 73 | <then> |
66 | 74 | <appender name="ErrorFileLog" class="ch.qos.logback.core.FileAppender"> |
67 | 75 | <filter class="edu.illinois.library.cantaloupe.logging.ApplicationErrorLogFilter" /> |
68 | 76 | <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> |
81 | 80 | </appender> |
82 | 81 | </then> |
83 | 82 | </if> |
84 | 83 |
|
| 84 | + <if condition='property("log.error.FileAppender.enabled").contains("true") && 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 --> |
85 | 97 | <if condition='property("log.application.RollingFileAppender.enabled").contains("true")'> |
86 | 98 | <then> |
87 | 99 | <appender name="AppRollingFileLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
88 | 100 | <filter class="edu.illinois.library.cantaloupe.logging.ApplicationLogFilter" /> |
89 | 101 | <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") && 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> |
110 | 125 | </appender> |
111 | 126 | </then> |
112 | 127 | </if> |
113 | 128 |
|
| 129 | + <!-- Rolling File Appenders for Error Logs --> |
114 | 130 | <if condition='property("log.error.RollingFileAppender.enabled").contains("true")'> |
115 | 131 | <then> |
116 | 132 | <appender name="ErrorRollingFileLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
117 | 133 | <filter class="edu.illinois.library.cantaloupe.logging.ApplicationErrorLogFilter" /> |
118 | 134 | <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") && 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> |
139 | 158 | </appender> |
140 | 159 | </then> |
141 | 160 | </if> |
142 | 161 |
|
| 162 | + <!-- Syslog Appenders --> |
143 | 163 | <if condition='property("log.application.SyslogAppender.enabled").contains("true")'> |
144 | 164 | <then> |
145 | 165 | <appender name="AppSyslogLog" class="ch.qos.logback.classic.net.SyslogAppender"> |
|
151 | 171 | </then> |
152 | 172 | </if> |
153 | 173 |
|
| 174 | + <!-- Access Log Appenders --> |
154 | 175 | <appender name="AccessStdoutLog" class="ch.qos.logback.core.ConsoleAppender"> |
155 | 176 | <filter class="edu.illinois.library.cantaloupe.logging.AccessLogFilter" /> |
156 | 177 | <encoder> |
|
176 | 197 | <appender name="AccessRollingFileLog" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
177 | 198 | <filter class="edu.illinois.library.cantaloupe.logging.AccessLogFilter" /> |
178 | 199 | <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> |
187 | 204 | <encoder> |
188 | 205 | <!-- already in W3C Extended Log File Format --> |
189 | 206 | <pattern>%msg%n</pattern> |
|
203 | 220 | </then> |
204 | 221 | </if> |
205 | 222 |
|
| 223 | + <!-- Access Logger Configuration --> |
206 | 224 | <logger name="edu.illinois.library.cantaloupe.logging.AccessLogService" additivity="false"> |
207 | 225 | <if condition='property("log.access.ConsoleAppender.enabled").contains("true")'> |
208 | 226 | <then> |
|
226 | 244 | </if> |
227 | 245 | </logger> |
228 | 246 |
|
| 247 | + <!-- Root Logger Configuration --> |
229 | 248 | <root level="${log.application.level}"> |
230 | 249 | <!-- |
231 | 250 | Access log appenders |
|
254 | 273 | <!-- |
255 | 274 | Application log appenders |
256 | 275 | --> |
257 | | - <if condition='property("log.application.ConsoleAppender.enabled").contains("true")'> |
| 276 | + <if condition='property("log.application.ConsoleAppender.enabled").contains("true") && !property("log.application.ConsoleAppender.logstash.enabled").contains("true")'> |
258 | 277 | <then> |
259 | 278 | <appender-ref ref="AppStdoutLog" /> |
260 | 279 | <appender-ref ref="AppStderrLog" /> |
261 | 280 | </then> |
262 | 281 | </if> |
263 | | - <if condition='property("log.application.FileAppender.enabled").contains("true")'> |
| 282 | + <if condition='property("log.application.ConsoleAppender.enabled").contains("true") && 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") && !property("log.application.FileAppender.logstash.enabled").contains("true")'> |
264 | 289 | <then> |
265 | 290 | <appender-ref ref="AppFileLog" /> |
266 | 291 | </then> |
267 | 292 | </if> |
268 | | - <if condition='property("log.error.FileAppender.enabled").contains("true")'> |
| 293 | + <if condition='property("log.application.FileAppender.enabled").contains("true") && 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") && !property("log.error.FileAppender.logstash.enabled").contains("true")'> |
269 | 299 | <then> |
270 | 300 | <appender-ref ref="ErrorFileLog" /> |
271 | 301 | </then> |
272 | 302 | </if> |
273 | | - <if condition='property("log.application.RollingFileAppender.enabled").contains("true")'> |
| 303 | + <if condition='property("log.error.FileAppender.enabled").contains("true") && 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") && !property("log.application.RollingFileAppender.logstash.enabled").contains("true")'> |
274 | 309 | <then> |
275 | 310 | <appender-ref ref="AppRollingFileLog" /> |
276 | 311 | </then> |
277 | 312 | </if> |
278 | | - <if condition='property("log.error.RollingFileAppender.enabled").contains("true")'> |
| 313 | + <if condition='property("log.application.RollingFileAppender.enabled").contains("true") && 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") && !property("log.error.RollingFileAppender.logstash.enabled").contains("true")'> |
279 | 319 | <then> |
280 | 320 | <appender-ref ref="ErrorRollingFileLog" /> |
281 | 321 | </then> |
282 | 322 | </if> |
| 323 | + <if condition='property("log.error.RollingFileAppender.enabled").contains("true") && property("log.error.RollingFileAppender.logstash.enabled").contains("true")'> |
| 324 | + <then> |
| 325 | + <appender-ref ref="ErrorRollingFileLogLogstash" /> |
| 326 | + </then> |
| 327 | + </if> |
283 | 328 | <if condition='property("log.application.SyslogAppender.enabled").contains("true")'> |
284 | 329 | <then> |
285 | 330 | <appender-ref ref="AppSyslogLog" /> |
|
0 commit comments