-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
news.html
executable file
·3687 lines (2899 loc) · 144 KB
/
news.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<title>News</title>
<link rel="stylesheet" type="text/css" href="css/common.css" />
<link rel="stylesheet" type="text/css" href="css/screen.css" media="screen" />
<link rel="stylesheet" type="text/css" href="css/_print.css" media="print" />
<link rel="stylesheet" type="text/css" href="css/prettify.css" media="screen" />
</head>
<body onload="prettyPrint()">
<script type="text/javascript">prefix='';</script>
<script type="text/javascript" src="js/prettify.js"></script>
<div id="container">
<script src="templates/header.js" type="text/javascript"></script>
<div id="left">
<noscript>Please turn on Javascript to view this menu</noscript>
<script src="templates/left.js" type="text/javascript"></script>
</div>
<div id="right">
<script src="templates/right.js" type="text/javascript"></script>
</div>
<div id="content">
<h2>Logback News</h2>
<p>You can receive logback-related announcements by subscribing to
the <a href="http://www.qos.ch/mailman/listinfo/announce">QOS.ch
announce</a> mailing list.</p>
<hr width="80%" align="center" />
<h3>16th of December, 2021, Release of version 1.2.9</h3>
<p class="highlight">We note that the vulnerability mentioned in
CVE-2021-42550 requires write access to logback's configuration
file as a prerequisite. <span class="green"><b>Please understand
that <a href="https://cve.report/CVE-2021-44228">log4Shell</a> and
<a href="https://cve.report/CVE-2021-42550">CVE-2021-42550</a> are
of different severity levels.</b></span></p>
<p>In response to <a
href="https://cve.report/CVE-2021-42550">CVE-2021-42550</a> (aka <a
href="https://jira.qos.ch/browse/LOGBACK-1591">LOGBACK-1591</a>) we
have decided to make the following steps.</p>
<p>1) Hardened logback's JNDI lookup mechanism to only honor
requests in the <code>java:</code> namespace. All other types of
requests are ignored. Many thanks to Michael Osipov for suggesting
this change and providing the relvant PR.
</p>
<p>2) <code>SMTPAppender</code> was hardened.
<p>3) Temporarily removed DB support for security reasons.</p>
<p>4) Removed Groovy configuration support. As logging is so
pevasive and configuration with Groovy is probably too powerful,
this feature is unlikely to be reinstated for security
reasons.</p>
<p>We note that the aforementioned vulnerability requires write
access to logback's configuration file as a prerequisite. Please
understand that <a
href="https://cve.report/CVE-2021-44228">log4Shell/CVE-2021-44228</a>
and <a href="https://cve.report/CVE-2021-42550">CVE-2021-42550</a>
are of different severity levels. A successul RCE attack with
CVE-2021-42550 requires <em>all</em> of the following conditions
to be met:</p>
<ol>
<li>write access to logback.xml</li>
<li>use of versions < 1.2.9</li>
<li>reloading of poisoned configuration data, which implies
application restart or scan="true" set prior to attack</li>
</ol>
<p>As an additional extra precaution, in addition to upgrading to
logback version 1.2.9, we also recommend users to set their
logback configuration files as read-only.</p>
<h3>16th of December, 2021, Release of version 1.3.0-alpha11</h3>
<p><b>Note that 1.3.0-alpha11 contains the same security related
changes as 1.2.9.</b></p>
<p class="highlight">The 1.3.x series is JPMS/Jigsaw/Java 9
modularized and requires slf4j-api version 2.0.x. However, the
1.3.x series requires Java 8 or later at <b>runtime</b>.</p>
<p>The 1.3.x series is Jigsaw/Java 9 modularized and requires
slf4j-api version 2.0.x. Moreover, the 1.3.x series requires
Java 8 or later at <b>runtime</b> whereas building logback
from source requires Java 9. <br/></p>
<p>Joran, logback's configuration system, has been rewritten to
use an internal representation model which can be processed
separately. As a side-effect, logback configuration scripts are
now largely order-free. For example, appenders can now be defined
after they are first referenced in a logger. Moreover,
unreferenced appenders are no longer instantiated. Given the
breadth of the changes in Joran codebase, support for
<code>SiftingAppender</code> and Groovy configuration have been
dropped temporarily.
</p>
<p>• Migrated from <code>javax.servlet</code>
to <code>jakarta.servlet</code>. This entails migration to Tomcat
version 10.0.10 and Jetty version 11.0.6 in logback-access. This
fixes
<a href="https://jira.qos.ch/browse/LOGBACK-1575">LOGBACK-1575</a>
reported by Daniel Svensson. Note that Jetty version 11 requires
Java version 11 or later.
</p>
<hr width="80%" align="center" />
<h3>14th of December, 2021, Release of version 1.2.8</h3>
<p>• In response to <a
href="https://cve.report/CVE-2021-42550">CVE-2021-42550</a> and <a
href="https://jira.qos.ch/browse/LOGBACK-1591">LOGBACK-1591</a> we
have decided to make the following steps.</p>
<p>1) we have disabled all JNDI lookup code in logback until further
notice. This impacts <a
href="manual/loggingSeparation.html#ContextJNDISelector">ContextJNDISelector</a>
and <insertFromJNDI> element in configuration files.
</p>
<p>2) we have removed all database (JDBC) related code in the
project with no replacement.</p>
<hr width="80%" align="center" />
<h3>11th of November, 2021, Release of version 1.2.7</h3>
<p>• Added <a
href="manual/usingSSL.html#parametersHostnameVerification">hostnameVerification</a>
to property <code>SSLSocketAppender</code>. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1574">LOGBACK-1574</a> as
reported by Andrei Komarov with Bruno Harbulot providing the
relevant patch.
</p>
<hr width="80%" align="center" />
<h3>10th of September, 2021, Release of version 1.2.6</h3>
<p>• To prevent XML eXternal Entity injection (XXE) attacks, Joran
no longer reads external entities passed in XML files. This fixes
<a href="https://jira.qos.ch/browse/LOGBACK-1465">LOGBACK-1465</a>
as reported by Shuibo Ye.
</p>
<hr width="80%" align="center" />
<h3>23rd of August, 2021, Release of version 1.3.0-alpha10</h3>
<p>• <code>CachingDateFormatter</code> is now
synchronization-free and performs about 30 times faster. This fixes
<a
href="https://jira.qos.ch/browse/LOGBACK-1421">LOGBACK-1421</a>.
</p>
<p>• <code>AsyncAppenderBase</code> now drains its buffer in
one go, considerably improving thoughput. See <a
href="performance.html">benchmarking results</a> for further
details.
</p>
<p>• <code>ThrowableProxy</code> now supports circular
exceptions. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1027">LOGBACK-1027</a>
with Jan S. (jpstotz) providing the relevant patch.</p>
<p>• <code>LogbackServiceProvider</code> now invokes
<code>LoggerContext.start()</code> method upon completion of
initialization. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1121">LOGBACK-1121</a>
reported by Johannes Herr.
</p>
<p>• Better error reporting in case of missing right curly brace
during variable substitution. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1417">LOGBACK-1417</a>.
</p>
<p>• Better error reporting in case of unknown properties in
components when reading XML configuration files. This
fixes <a href="https://jira.qos.ch/browse/LOGBACK-1570">LOGBACK-1570</a>.
</p>
<p>• Utility method
<code>ConcerterUtil.setContextForConverters()</code> now handles
<code>CompositeConverter</code> instances correctly. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1571">LOGBACK-1571</a>.
</p>
<hr width="80%" align="center" />
<h3>13th of August, 2021, Release of version 1.3.0-alpha9</h3>
<p>• In <code>ILoggingEvent</code>, added a <code>getMarker()</code>
method with a default implementation returning the first marker in
the marker list. This method is deprecated and exists solely for
backward compatibility reasons. Logback components should use
<code>getMarkerList()</code> and cater for all available markers and
not the only the first marker. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1569">LOGBACK-1569</a>
reported by Pelle Krøgholt .</p>
<hr width="80%" align="center" />
<h3>12th of August, 2021, Release of version 1.3.0-alpha8</h3>
<p>• Upped the requested slf4j-api version by
<code>LogbackServiceProvider</code> to 2.0.99 instead of
1.8.99. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1568">LOGBACK-1568</a>.</p>
<hr width="80%" align="center" />
<h3>10th of August, 2021, Release of version 1.3.0-alpha7</h3>
<p>• <code>AccessEvent</code> in the logback-access module now tries
to get a reference to a given <code>HttpRequest</code> session
without trying to create it if missing. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1219">LOGBACK-1219</a>
reported by Chris West with Iliya Krapchatov providing the
relevant patch.
</p>
<p>• To prevent XML eXternal Entity injection (XXE) attacks, Joran
no longer reads external entities passed in XML files. This fixes
<a href="https://jira.qos.ch/browse/LOGBACK-1465">LOGBACK-1465</a>
as reported by Shuibo Ye.
</p>
<p>• The <em>logback-access</em> module now supports Jetty version
9.4.9 and Tomcat version 9.0.50, the latest versions compatible
with Java 8.
</p>
<p>• Migrated <code>SMTPAppender</code> to use
<code>jakarta.mail</code> instead of <code>javax.mail</code>. This
fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1516">LOGBACK-1516</a>.
</p>
<p>• Added the <a href="manual/layouts.html#kvp">kvp</a> conversion
word in logback-classic in order to support
<code>KeyValuePair</code>. <code>KeyValuePair</code> is part of
the fluent API introduced in SLF4J 2.0.</p>
<p>• Patterns with composite converters now correctly detect if
child converters handle exceptions. This issue was reported in <a
href="https://jira.qos.ch/browse/LOGBACK-1566">LOGBACK-1566</a>.</p>
<p>• Removed unused dependency on the
edu.washington.cs.types.checker:checker-framework artifact. This
fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1501">LOGBACK-1501</a>
reported by Jeremy Landis.
</p>
<p>Implementation of
<code>TargetLengthBasedClassNameAbbreviator</code> has been both
simplified and augmented with a LRU cache. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1509">LOGBACK-1509</a>
reported by Michael Skells who also provided a relevant PR.
</p>
<h3>28th of July, 2021, Release of version 1.3.0-alpha6</h3>
<p>Joran, logback's configuration system, has been rewritten to
use an internal representation model which can be processed
separately. As a side-effect, logback configuration scripts are
now largely order-free. For example, appenders can now be defined
after they are first referenced in a logger. Moreover,
unreferenced appenders are no longer instantiated. Given the
breadth of the changes in Joran codebase, support for
<code>SiftingAppender</code> and Groovy configuration have been
dropped temporarily.
</p>
<p>In addition to the important Joran and Jigsaw modularization
changes mentioned above, this version contains the same fixes as
in logback versions 1.2.4 and 1.2.5.
</p>
<hr width="80%" align="center" />
<h3>26th of July, 2021, Release of version 1.2.5</h3>
<p>Instead of an <code>Appender</code>, the
<code>LayoutWrappingEncoder</code> now accepts a variable of type
<code>ContextAware</code> as a parent. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1326">LOGBACK-1326</a> as
reported by Phil Clay who also provided the relevant patch.
</p>
<hr width="80%" align="center" />
<h3>19th of July, 2021, Release of version 1.2.4</h3>
<p>Added support for minimum length in %i filename pattern. This
fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1248">LOGBACK-1248</a>
with John Gardiner Myers providing the relevant patch.</p>
<p>For size bound log file archiving, allow
<code>TimeBasedArchiveRemove</code> to remove files with indexes
containing upto 5 digits. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1175">LOGBACK-1175</a>.
</p>
<p>Added <a
href="manual/layouts.html#prefix"><code>%prefix</code></a>
composite converter which automatically prefixes child converter
output with the name of the converter. This feature is quite handy
in environments where log files need to be parsed and monitored.
tools.
</p>
<hr width="80%" align="center" />
<h3>11th of October, 2019, Release of version 1.3.0-alpha5</h3>
<p>ConsoleAppender now delegates filtering of ANSI sequences to
Jansi. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1392">LOGBACK-1392</a>
reported by Alexandre Dutra who also provided the relevant patch.
</p>
<hr width="80%" align="center" />
<h3>February 11th, 2018, Release of version 1.3.0-alpha4</h3>
<div class="breaking">
<p>Given that all currently available versions of Groovy are
incompatible with Java 9, at least when built with Maven, we
have momentarily <b>dropped support for Groovy
configuration</b>, a.k.a Gaffer. For details refer to <a
href="http://markmail.org/thread/nekeppbvwrfl7hbb#query:+page:1+mid:obdyvuv24kqpxm6v+state:results">this
thread</a> and relevant <a
href="https://issues.apache.org/jira/browse/GROOVY-8471">jira
issue.</a></p>
</div>
<br/>
<div class="breaking">
<p>Due to lack of user interest, logback-classic no longer
supports <a href="manual/loggingSeparation.html">logging
separation</a> by way of <code>ContextSelector</code>.</p>
</div>
<p>Under JPMS (Java 9), module <code>ch.qos.logback.core</code> is
now able to read module <code>java.xml</code>. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1381">LOGBACK-1381</a>
reported by Mark Raynsford.
</p>
<hr width="80%" align="center" />
<h3>February 10th, 2018, Release of version 1.3.0-alpha3</h3>
<p>Under JPMS (Java 9), allow user code to implement
<code>ch.qos.logback.classic.spi.Configurator</code> as a
service. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1380">LOGBACK-1380</a>
reported by Mark Raynsford.
</p>
<p>Fix issue with properties containing JSON strings as reported
in <a
href="https://jira.qos.ch/browse/LOGBACK-1101">LOGBACK-1101</a>.
</p>
<hr width="80%" align="center" />
<h3>January 30th, 2018, Release of version 1.3.0-alpha2</h3>
<p>Depend on SLF4J version 1.8.0-beta1 instead of
1.8.0-beta1-SNAPSHOT.</p>
<p>Fix build under Travis.</p>
<h3>January 30th, 2018, Release of version 1.3.0-alpha1</h3>
<p>In the absence of a <span class="attr">class</span> attribute,
the <code>shutdownHook</code> configuration directive now
correctly assumes
<code>ch.qos.logback.core.hook.DefaultShutdownHook</code>
class. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1162">LOGBACK-1162</a>
reported by Alex Selesse.</p>
<p>Logback's internal <code>ThreadPoolExecutor</code> now has an
initial pool of 1 thread instead of 8 previously.</p>
<p>TimeBasedArchiveRemover is now able to deal with indexes over
999. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1175">LOGBACK-1175</a>
reported by Diego Furtado who also provided the relevant PR.
</p>
<p><code>SizeAndTimeBasedRollingPolicy</code> will correctly
remove archived log files created within a given time period even
if the last modified date for said files has been modified since
archiving or is otherwise incorrect. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1361">LOGBACK-1361</a> as
reported by Peter Risko.</p>
<p>String to Level conversion now handles strings with tailing
spaces. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1288">LOGBACK-1288</a>
reported by Gaurav Khanna.
</p>
<p><code>MDCFilter</code> will enforce the presence of
<code>MDCKey</code> and <code>value</code> properties, refusing to
start when either property absent. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1165">LOGBACK-1165</a>
reported by Martin Steiger.
</p>
<p>Added the feature to update mime message before sending the
email. This enhancement was requested in <a
href="https://jira.qos.ch/browse/LOGBACK-1284">LOGBACK-1284</a> by
Miguel Vale who also provided the relevant PR.</p>
<p>If omitted, the <span class="option">scanPeriod</span>
attribute in configuration file defaults to 1 minute. The
documentation <a
href="manual/configuration.html#autoScan">stated
as much</a> but the code had not followed through. This issue was
reported in <a
href="https://jira.qos.ch/browse/LOGBACK-1194">LOGBACK-1194</a>
with F. Buechler providing the appropriate patch.</p>
<p>Updated JavaMail version to 1.6. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1094">LOGBACK-1094</a>
reported by Romain Moreau.
<p>Removed "final" modifier for the
<code>LoggerContext.getLogger(String)</code> method. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1308">LOGBACK-1308</a>
reported by Richard Sand.</p>
<hr width="80%" align="center" />
<h3>January 18th, 2018, Release of version 1.3.0-alpha0</h3>
<p>Added support for minimum length in %i filename pattern. This
fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1248">LOGBACK-1248</a>
with John Gardiner Myers providing the relevant patch.</p>
<p>Correct parsing of <code>java.version</code> system property
for Java 9 and later. This fixes <a
href="https://jira.qos.ch/browse/LOGBACK-1260">LOGBACK-1260</a>
with Patrick Reinhart providing the relevant patch.
</p>
<p>ConsoleAppender now works with consoles confused by output
strings of zero length, e.g. Java Web Start. This fixes issue <a
href="https://jira.qos.ch/browse/LOGBACK-1282">LOGBACK-1282</a>
reported by Clas Forsberg.</p>
<hr width="80%" align="center" />
<h3>March 30th, 2017, Release of version 1.2.3</h3>
<p>Fix unintentional dependency on
<code>OutputStreamAppender</code> in
<code>LayoutWrappingEncoder</code> as reported in <a
href="https://jira.qos.ch/browse/LOGBACK-1287">LOGBACK-1287</a>.
</p>
<p>Fix spurious <code>System.out.println</code> in AsyncAppender's
worker thread. This issue was reported in <a
href="https://jira.qos.ch/browse/LOGBACK-1292">LOGBACK-1292</a> by
Nikolas Loutas with Thibault Meyer the relevant patch.</p>
<p>ConsoleAppender exception when run under Java WebStart. This
problem was reported in <a
href="https://jira.qos.ch/browse/LOGBACK-1282">LOGBACK-1282</a> by
Clas Forsberg.</p>
<h3>March 16th, 2017, Release of version 1.2.2</h3>
<p><code>AsyncAppender</code> no longer drops events when the
current thread has its interrupt flag set. This issue was reported
in <a
href="https://jira.qos.ch/browse/LOGBACK-1247">LOGBACK-1247</a> by
Jakob Bergendahl who also provided the relevant pull request.
</p>
<p>Removed <code>JMSQueueAppender</code> and
<code>JMSTopicAppender</code>. These appenders were undocumented
and had no apparent users.</p>
<p>Remove comment in logback-classic's
<code>META-INF/services/javax.servlet.ServletContainerInitializer</code>
file in order to keep Wildfly 8 happy. This issue was reported in
<a href="https://jira.qos.ch/browse/LOGBACK-1265">LOGBACK-1265</a>
by Andy Wilkinson.
</p>
<p><code>FileSize.toString()</code> now reports files sizes in GB
in addition to sizes in MB and KB and Bytes. This fixes issue <a
href="https://jira.qos.ch/browse/LOGBACK-1278">LOGBACK-1278</a>.</p>
<hr width="80%" align="center" />
<h3>March 1st, 2017, Release of version 1.1.11</h3>
<p>Fix thread-safety issue with <code>PatternLayoutBase</code>
reported in <a
href="https://jira.qos.ch/browse/LOGBACK-1270">LOGBACK-1270</a> by
Artem Bilan. Note that the fix was already present in the 1.2.x
series and was back-ported to the 1.1.x series.</p>
<hr width="80%" align="center" />
<h3>February 9th, 2017, Release of version 1.2.1</h3>
<p>To ensure backward compatibility of configuration files, the
<span class="prop">immediateFlush</span> property set for a
<code>LayoutWrappingEncoder</code> is propagated to the enclosing
<code>OutputStreamAppender</code>.
</p>
<hr width="80%" align="center" />
<h3>February 8th, 2017, Release of version 1.2.0</h3>
<div class="breaking">
<h4><code>Encoder</code> interface has changed and is no longer
expected to handle an <code>OutputStream</code>.</h4>
</div>
<p><code>Encoder</code> interface has changed and is no longer
expected to handle an <code>OutputStream</code>. This
simplification allows finer-grain locking resulting in <a class="big"
href="https://docs.google.com/spreadsheets/d/1cpb5D7qnyye4W0RTlHUnXedYK98catNZytYIu5D91m0/edit?usp=sharing">significantly
improved performance</a>.
</p>
<p class="highlight">Release 1.2.0 fixes a rather severe
serialization vulnerability in <code>SocketServer</code> and
<code>ServerSocketReceiver</code>. Users running these components
should upgrade immediately.</p>
<p>This release fixes a rather severe serialization vulnerability
in <code>SocketServer</code> and
<code>ServerSocketReceiver</code>. Users running these components
should upgrade immediately.
</p>
<p>In <code>TimeBasedRollingPolicy</code>, fixed issue with <span
class="option">totalSizeCap</span> of more than 2^31. This problem
was reported in <a
href="https://jira.qos.ch/browse/LOGBACK-1231">1231</a> by Simon
Teng.
</p>
<p>Logback-classic now searches for the file
<em>logback-test.xml</em> first, <em>logback.groovy</em> second
and <em>logback.xml</em> third. In previous versions
<em>logback.groovy</em> was looked up first which was non-sensical
in presense of <em>logback-test.xml</em>. This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-1245">LOGBACK-1245</a>
reported by Joern Huxhorn.
</p>
<hr width="80%" align="center" />
<h3>February 5th, 2017, Release of version 1.1.10</h3>
<p>Several changes to improve throughput (see <a
href="https://docs.google.com/spreadsheets/d/1cpb5D7qnyye4W0RTlHUnXedYK98catNZytYIu5D91m0/edit?usp=sharing"><b>spreadsheet</b></a>)
</p>
<ol>
<li>The <code>ReentrantLock</code> in
<code>OutputStreamAppender</code> is now "unfair". In previous
versions of logback, a fair lock was used. Fair locks are much
slower. Just as importanly, logback has no mandate to influence
thread scheduling.
</li>
<li><code>FileAppender</code> now offers the <span
class="option">bufferSize</span> option. Previously, a
fixed-size 8K buffer was used. Increasing the <span
class="option">bufferSize</span>, for example to 256K,
significantly reduces thread-contention.
</li>
<li>Critical parts of the code now use
<code>COWArrayList</code>, a custom developed allocation-free
lock-free thread-safe implementation of the {@link List}
interface. It is optimized for cases where iterations over the
list vastly outnumber modifications on the list. It is based on
<code>CopyOnWriteArrayList</code> but allows allocation-free
iterations over the list.
</li>
<li>In <code>PatternLayoutBase</code> the same
<code>StringBuilder</code> is used over and over to reduce
memory allocation. This is safe as long as the owning appender
guarantees serial access to its layout. In the next version of
logback, i.e. 1.2.x, the read-write lock will no longer protect
access to the layout and there will be no guarantee of
serial access.
</li>
</ol>
<p>In web-applications, logback-classic will <a
href="manual/configuration.html#webShutdownHook">automatically
install a listener</a> which will stop the logging context and
release resources when your web-app is reloaded. This enhancement
was requested <a
href="https://jira.qos.ch/browse/LOGBACK-1170">LOGBACK-1170</a> by
Martin Wegner.
</p>
<p>The <code>AccessEvent.prepareForDeferredProcessing()</code>
method was not idempotent. This caused subtle bugs under
Jetty. See <a
href="https://jira.qos.ch/browse/LOGBACK-1189">LOGBACK-1189</a>
for details. Many thanks to Per Olesen, Evan Meagher, Nick Babcock
and Mark Elliot for hunting down this bug.
</p>
<p>As it may be time consuming in certain environments, the
HOSTNAME property is now computed lazily. This optimization
requested in <a
href="https://jira.qos.ch/browse/LOGBACK-1221">LOGBACK-1221</a> by
Eugene Petrenko.
</p>
<p>Joran now supports external XML entities. This feature was
requested in <a
href="https://jira.qos.ch/browse/LOGBACK-1091">1091</a> and the
relevant PR graciously provided by Jonas Neukomm.
</p>
<hr width="80%" align="center" />
<h3>January 20th, 2017, Release of version 1.1.9</h3>
<p>Logback's internal executor service had a thread pool size of 2
which could be used up rather quickly, e.g. configuration scanning
in addition to an active <code>ServerSocketAppender</code>. When
both threads where permanently in use, compression could not
proceed. To alleviate this problem, the thread pool size has been
increased to 8. See issue <a
href="https://jira.qos.ch/browse/LOGBACK-1238">LOGBACK-1238</a>
for more details.
</p>
<p>Fixed issue with <code>FileAppender</code> instances embedded
within <code>SiftingAppender</code> reporting filename collisions
after reaching timeout and subsequently restarted. This problem
was reported in <a
href="https://jira.qos.ch/browse/LOGBACK-1167">LOGBACK-1167</a> by
Michael Edgar.
</p>
<p>Fixed <code>SizeAndTimeBasedFNATP</code> deprecation warning
emitted even the replacement,
i.e. <code>SizeAndTimeBasedRollingPolicy</code>, is in use. See <a
href="http://jira.qos.ch/browse/LOGBACK-1236">LOGBACK-1236</a>. This
issue was reported by Claudius Nicolae.
</p>
<p>Added proper implementation for
<code>LobackValve.getScheduledExecutorService()</code> method. The
missing implementation manifested itself in the form of an
<code>UnsupportedOperationException</code> thrown by
LogbackValve. This problem is further described in <a
href="http://jira.qos.ch/browse/LOGBACK-1181">LOGBACK-1181</a>
reported by Andreas von Roepenack.
</p>
<hr width="80%" align="center" />
<h3>December 9th, 2016, Release of version 1.1.8</h3>
<p>Removed the two period safeguard, aka untouchable periods, for
archive removal beyond the size specified by <span
class="option">totalSizeCap</span> in
<code>TimeBasedRollingPolicy</code>. It turns out the safegaurd is
not required and is unexpected as attested by <a
href="http://jira.qos.ch/browse/LOGBACK-1166">LOGBACK-1166</a>.
</p>
<p>Fixed issue with Joran incorrectly reporting "Unexpected
aggregationType AS_BASIC_PROPERTY_COLLECTION". This issue was
raised in <a
href="http://jira.qos.ch/browse/LOGBACK-1158">LOGBACK-1158</a> by
Christian Hübner.
</p>
<p>Gaffer (logback's groovy configurator) now supports the
<code>valueOf</code> convention. This issue was raised in <a
href="http://jira.qos.ch/browse/LOGBACK-1232">LOGBACK-1232</a> by
Frans Orsel.
</p>
<p>The <code>org.slf4j.impl.StaticLoggerBinder</code> class
shipping in logback-classic no longer catches
<code>Throwable</code> but <code>Exception</code>. This change was
requested in <a
href="http://jira.qos.ch/browse/LOGBACK-1159">LOGBACK-1159</a> by
David J. M. Karlsen.
</p>
<p><code>BeanDescriptionFactory</code> no longer outputs a
superflous warning message in case the class contains bridge
methods. This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-1164">LOGBACK-1164</a>
reported by Phil Clay.
</p>
<!--
<p>Added logback-bom module for use as a Maven "Bill of Materials"
<em>pom</em> file. This was requested in <a
href="http://jira.qos.ch/browse/LOGBACK-1157">LOGBACK-1157</a>
Joerg Sesterhenn.</p>
-->
<hr width="80%" align="center" />
<h3>March 29th, 2016, Release of version 1.1.7</h3>
<p>Logback is now <a href="
http://docs.oracle.com/javase/8/docs/technotes/guides/compactprofiles/compactprofiles.html">compact3
profile</a> compatible. This improvement was requested in <a
href="http://jira.qos.ch/browse/LOGBACK-1071">LOGBACK-1071</a> by
Axel Fontaine with Max Urech providing the relevant pull-request.
</p>
<p>Fixed <code>ConcurrentModificationException</code> being thrown
when the <code>reset()</code> method is invoked on the
<code>LoggerContext</code> instance. This issue was reported in <a
href="http://jira.qos.ch/browse/LOGBACK-397">LOGBACK-397</a> by
Szczepan Faber with Ross Sargant providing the relevant test case.
</p>
<p><code>TimeBasedRollingPolicy</code> now supports the <a
href="manual/appenders.html#tbrpTotalSizeCap"><span
class="option">totalSizeCap</span></a> property which allows the
user to limit the total size of archived logs.
</p>
<p><a
href="manual/appenders.html#SizeAndTimeBasedRollingPolicy"><code>SizeAndTimeBasedRollingPolicy</code></a>
offers the same functionality as
<code>SizeAndTimeBasedFNATP</code> did previously but with a
simpler configuration structure.
</p>
<p>Archive removal by <code>RollingFileAppender</code> is now
performed asynchronously.</p>
<p>Unnecessary and incompatible %i token in <span
class="option">fileNamePattern</span> option with
<code>RollingFileAppender/TimeBasedRollingPolicy</code> is now
detected and the user alerted to the misconfiguration
problem. This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-1143">LOGBACK-1143</a>.
</p>
<p>Joran can now handle logger names ending with a $, i.e. the
first character in variable substitution. This issue was raised in
<a href="http://jira.qos.ch/browse/LOGBACK-1149">LOGBACK-1149</a>
by by Stevo Slavic.
</p>
<hr width="80%" align="center" />
<h3>February 29th, 2016, Release of version 1.1.6</h3>
<p><code>LogbackValve</code> (in logback-access) now attempts to
load the configuration file as a resource if it cannot be found on
the filesystem (<a
href="http://jira.qos.ch/browse/LOGBACK-1069">LOGBACK-1069</a>). This
is helpful in scenarios where applications are using an embedded
Tomcat server.</p>
<p><code>JMXConfigurator.reloadDefaultConfiguration()</code>
method now tolerates programmatic configuration without a
URL. This change was provided by Vedran Pavic in <a
href="https://github.com/qos-ch/logback/pull/302">PR 302</a>.
</p>
<p><code>RollingFileAppender</code> will output an error message
if the date time pattern in the %d token within the <span
class="option">fileNamePattern</span> is not collision free. This
fixes <a
href="http://jira.qos.ch/browse/LOGBACK-1137">LOGBACK-1137</a>. In
a similar vein, every instance of <code>FileAppender</code> will
now detect if it shares the same <span class="option">File</span>
option value as given for an appender defined earlier. In
addition, <code>RollingFileAppender</code> instances now check for
colliding <span class="option">FileNamePattern</span> values.</p>
<p>Fixed <code>NullPointerException</code> thrown by
<code>RollingFileAppender</code> if the name of the rollover
target path did not contain a parent. This issue was reported in
<a href="http://jira.qos.ch/browse/LOGBACK-1054">LOGBACK-1054</a>
by Paulius Matulionis. Analysis of the problem and the relevant PR
was provided by Ferenc Palkovics.</p>
<p><code>BasicConfigurator.configure</code> method call executes
significatly faster. Improved documentation for configuration
using JDK 1.6 service-provider facility. These changes are in
response to <a
href="http://jira.qos.ch/browse/LOGBACK-1141">LOGBACK-1141</a>
requesting faster logback start-up time.
</p>
<p>Fixed issue with variable substitution with the value ending in
a colon. This problem was reported in <a
href="http://jira.qos.ch/browse/LOGBACK-1140">LOGBACK-1140</a> by
Eric Cook.</p>
<hr width="80%" align="center" />
<h3>February 13th, 2016, Release of version 1.1.5</h3>
<div class="breaking">
<h4>MDC values are no longer inherited by child threads.</h4>
</div>
<p>Child threads no longer inherit MDC values. In previous
versions of logback as well as log4j 1.x, MDC values were
inherited by child threads. Several users have argued convincingly
that MDC inheritance by child threads was unhelpful and even
dangerous. This change fixes <a
href="http://jira.qos.ch/browse/LOGBACK-422">LOGBACK-422</a> and <a
href="http://jira.qos.ch/browse/LOGBACK-624">LOGBACK-624</a>
</p>
<p>When the <code>FileNamePattern</code> string for
<code>RollingFileAppender/SizeAndTimeBasedFNATP</code> lacks a %i
token, then compression for the second archive in the same period
cannot occur as the target file already exists. Under those
circumstances, logback leaves behind .tmp files as reported in <a
href="http://jira.qos.ch/browse/LOGBACK-992">LOGBACK-992</a>, <a
href="http://jira.qos.ch/browse/LOGBACK-173">LOGBACK-173</a> and
<a
href="http://jira.qos.ch/browse/LOGBACK-920">LOGBACK-920</a>. In
this release, this particular condition is detected by
<code>RollingFileAppender</code> which will not start but alert
the user instead.
</p>
<p>AsyncAppender is now configurable to never block. This feature
was requested by Jeff Wartes in <a
href="http://jira.qos.ch/browse/LOGBACK-898">LOGBACK-898</a> with
Jeff Wartes and Gareth Davis providing the relevant patch.
</p>
<hr width="80%" align="center" />
<h3>February 11th, 2016, Release of version 1.1.4</h3>
<div class="breaking">
<h4>Logback 1.1.4 requires SLF4J version 1.7.16 or later.</h4>
</div>
<p>Added event replay support as introduced in SLF4J version
1.7.15. In most circumstances, logack-classic should run fine with
earlier versions of slf4j-api, including all versions in the 1.6.x
and 1.7.x series. However, with a version of slf4j-api.jar earlier
than 1.7.15 in the classpath, attempting introspection of a
<code>Logger</code> instance will result in a
<code>NoClassDefFoundError</code> similar to that shown below.
</p>
<pre class="prettyprint source">Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/event/LoggingEvent
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2451)
at java.lang.Class.privateGetPublicMethods(Class.java:2571)
at java.lang.Class.getMethods(Class.java:1429)
at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1261)
at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1122)
at java.beans.Introspector.getBeanInfo(Introspector.java:414)
at java.beans.Introspector.getBeanInfo(Introspector.java:161)
</pre>
<p>
</p>
<div class="breaking">
<h4>Packaging data (as output in stack traces) is now disabled
by default.
</h4>
</div>
<p>In case an application throws exceptions frequently, then
computing packaging data can be very costly and will cause the
application to run slower. Making bad worse. To alleviate this
problem, packaging data is no longer computed by default. It has
to be <a href="manual/configuration.html#packagingData">enabled
explicitly</a>. In the absence of explicit instructions, i.e the
user has not specified a converter handling exceptions,
<code>PatternLayout</code> in logback-classic will follow the
settings defining for the logging environment. If packaging data
is disabled, then it add %ex as a suffix in the pattern, and if
packaging data is enabled then %xEx will be added. These changes
fix <a
href="http://jira.qos.ch/browse/LOGBACK-730">LOGBACK-730</a> and
<a href="http://jira.qos.ch/browse/LOGBACK-966">LOGBACK-966</a>.
</p>
<p>Fixed a bug in
<code>TimeBasedFileNamingAndTriggeringPolicyBase</code> causing
time-based rolling policies to always rollover according to the
local system time and ignore the time zone passed in the file name
pattern. The issue was reported by Lukasz Sanek who also provided
the the relevant fix. </p>
<p><code>AsyncAppenderBase</code> now restores the current
thread's interrupt flag when catching an
<code>InterruptedException</code>. The issue
(<a href="http://jira.qos.ch/browse/LOGBACK-910">LOGBACK-910</a>) was
raised by Henrik Nordvik who also provided the relevant fix.</p>
<hr width="80%" align="center" />
<h3>24th of March 2015, Release of version 1.1.3</h3>
<div class="breaking">
<h4>As of version 1.1.3, all logback modules require JDK 1.6
instead of previously JDK 1.5. This change was put to
consultation on the logback mailing lists with no objections
raised.</h4>
</div>
<p>Fixed <code>FileAppender</code>'s prudent mode so that it properly recovers
from IO Errors
(<a href="http://jira.qos.ch/browse/LOGBACK-1046">LOGBACK-1046</a>) </p>
<p>Irrelevant or internal stack trace lines can now be omitted. Pull request
provided by Tomasz Nurkiewicz
(<a href="http://jira.qos.ch/browse/LOGBACK-540">LOGBACK-540</a>).</p>
<p><code>AccessEvent</code> now creates a copy of request attributes when
its <code>prepareForDeferredProcessing()</code> method is called. This makes
attributes visible even if an appender uses a background thread to process
events.
(<a href="http://jira.qos.ch/browse/LOGBACK-1033">LOGBACK-1033</a>)</p>
<p>All threads opened by <code>ch.qos.logback.core.util.ExecutorServiceUtil#THREAD_FACTORY</code>
are now daemons, which fixes an application hang on shutdown when <code>LoggerContext#stop()</code>
is not called (<a href="http://jira.qos.ch/browse/LOGBACK-929">LOGBACK-929</a>).
Note that daemon threads are abruptly terminated by the JVM, which may cause
undesirable results, such as corrupted files written by the <code>FileAppender</code>.
It is still highly recommended for the application to call <code>LoggerContext#stop()</code>
(e.g., in a shutdown hook) to gracefully shutdown appenders.</p>
<p>Fixed an issue with <code>RollingFileAppender</code> where the first