/
news.html
executable file
·2704 lines (2132 loc) · 105 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>
<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="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>Version 1.1.3</h3>
<div class="breaking">
<h4>All logback modules now require JDK 1.6 instead of
previously JDK 1.5. This change was put to consultation on the
logback mailing lists with no objections received.</h4>
</div>
<p>Added support for specifying the callstack depth range in the
<code>PatternLayout</code>. For example, <code>%caller{1..2}</code>
displays the first two calls in the callstack.</p>
<p>Added HTTP request method to <code>MDCInsertingServletFilter</code>.</p>
<p>Fixed time-zone dependent code in <code>RollingCalendarTest</code>.
(<a href="http://jira.qos.ch/browse/LOGBACK-116">LOGBACK-116</a>)
</p>
<p>Simplified connection logic of SocketApender to reduce multi-threading
overhead and unnecessary instantiation of <code>SocketConnector</code>
objects.<p>
<p>Fixed race condition in <code>SMTPAppenderBase</code> causing missing or
duplicate emails.
(<a href="http://jira.qos.ch/browse/LOGBACK-909">LOGBACK-909</a>)
</p>
<p>Fixed an issue with <code>FileAppender</code> in prudent mode, where
an interrupt could prevent further access to the file
(<a href="http://jira.qos.ch/browse/LOGBACK-875">LOGBACK-875)</a>.<p>
<p>Fixed <code>IllegalStateException</code> when multiple threads
write files to same directory
(<a href="http://jira.qos.ch/browse/LOGBACK-128">LOGBACK-128)</a>.<p>
<p>Changed queue consumption strategy in <code>AbstractSocketAppender</code>
from "take" to "peek/remove" in order to avoid losing an event on each socket
connection break. Zero is now a deprecated queue size. A queue size of one
should be taken instead to indicate synchronous processing.
(<a href="http://jira.qos.ch/browse/LOGBACK-977">LOGBACK-977</a>)
</p>
<p><code>RequestLogImpl</code> now has an overridable <code>configure</code>
method to allow extending implementations to configure it via methods
other than the <code>logback-access.xml</code> file.</p>
<p>Fixed a bug in <code>AccessEvent</code> which could cause any
<code>AsyncAppender</code> based appender to corrupt the request
headers, request parameters, or response headers, before logging.</p>
<p>SQL scripts to setup your logback database are now provided as
JAR resources
(<a href="http://jira.qos.ch/browse/LOGBACK-948">LOGBACK-948)</a>.
</p>
<p>Threads are now named <i>logback-<b>THREAD_ID</b></i>, where
<i>THREAD_ID</i> is a locally assigned integer.</p>
<p>Added max runtime parameter to <code>AsyncAppender</code> to allow
the appender to flush events, up to a maximum delay, during a stop
of the LoggerContext. This can be used to ensure that all queued
events are flushed.</p>
<p>Added new configuration element <code>shutdownHook</code> to allow the
user to specify a ShutdownHook implementation that will stop the Logback
context upon JVM exit.
</p>
<p><code>BasicStatusManager</code> now prevents adding more than
one instance of <code>OnConsoleStatusListener</code> as a status
listener. This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-976">LOGBACK-976</a>.
</p>
<p><code>TimeBasedRollingPolicy</code> now accepts a time zone in
its <code>%d</code> conversion pattern. (<a
href="http://jira.qos.ch/browse/LOGBACK-611">LOGBACK-611</a>)
</p>
<p>It is now possible to configure the character encoding used by
<code>SyslogAppender</code> to encode messages using the
<code>setCharset()</code> method. This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-732">LOGBACK-732</a>
</p>
<h3>2nd of April, 2014 - Release of version 1.1.2</h3>
<p>Create an abstract method, createOutputStream, as an extension point
for subclasses of SyslogBaseAppender to create their own OutputStream.
<a href="http://jira.qos.ch/browse/LOGBACK-890">LOGBACK-890</a>
</p>
<p>Removed deprecated constructors in <code>SocketAppender</code>
and related classes.</p>
<p>Fixed incorrect date format in <code>SyslogAppender</code>.
(<a href="http://jira.qos.ch/browse/LOGBACK-936">LOGBACK-936</a>)
</p>
<p>Fixed <code>NullPointerException</code> when substituting blank variables
(<a href="http://jira.qos.ch/browse/LOGBACK-959">LOGBACK-959</a>)
<p>Fixed <code>NullPointerException</code> that occurs when stopping a
<code>SyslogAppender</code> that did not properly initialize, e.g.,
due to a hostname resolution failure.
(<a href="http://jira.qos.ch/browse/LOGBACK-960">LOGBACK-960</a>)
</p>
<p>Use fair locking in <code>OutputStreamAppender</code>. Patch provided by
Sergey Bykov.
(<a href="http://jira.qos.ch/browse/LOGBACK-268">LOGBACK-268</a>)
</p>
<p>In case of missing included files, IncludeAction no longer
prints a stack trace but prints a warning instead. (<a
href="http://jira.qos.ch/browse/LOGBACK-954">LOGBACK-954</a>)
<hr width="80%" align="center" />
<h3>5th of February, 2014 - Release of version 1.1.1</h3>
<p>Logback now supports an unlimited level of <a
href="manual/configuration.html#variableSubstitution">variable</a>
resolution graphs rather than being limited to one level deep
resolution. This enhancement was requested by Anton Wiedermann in
<a href="http://jira.qos.ch/browse/LOGBACK-943">LOGBACK-943</a>
with Eric Dahl providing the relevant pull request.
</p>
<p>Fixed <a
href="http://jira.qos.ch/browse/LOGBACK-942">LOGBACK-942</a> which
was causing <code>SocketAppender</code> to drop events. Eric Dahl
provided the relevant pull request.
</p>
<hr width="80%" align="center" />
<h3>January 28th, 2014 - Release of version 1.1.0</h3>
<p>Previously, logback silently ignored configuration files that did
not have the ".xml" or ".groovy" file extension. Now, a <code>LogbackException</code>
is thrown to flag this error.
</p>
<p>Groovy configuration now supports <code>appenderRef</code>, which
allows the use of <code>AsyncAppender</code> in Groovy.
(<a href="http://jira.qos.ch/browse/LOGBACK-269">LOGBACK-269</a>)
</p>
<p><code>SizeAndTimeBasedFNATP</code> now supports a protected function
<code>#createArchiveRemover</code> that allows subclasses to specify
a custom archive remover used in <code>RollingFileAppender</code>. The
default archive remover is <code>SizeAndTimeBasedArchiveRemover</code>.
</p>
<p><code>PackagingDataCalculator</code> now catches and ignores
<code>UnsupportedOperationException</code> so that it can determine
whether the JVM supports <code>Reflection#getCallerClass()</code>
without printing that exception's stack trace. This only affects
Java 7u40+, which removed support for <code>Reflection#getCallerClass()</code>.
(<a href="http://jira.qos.ch/browse/LOGBACK-885">LOGBACK-885</a>)
</p>
<p>To facilitate debugging, <code>SimpleSocketServer</code> now names
its threads: "<b>Logback SimpleSocketServer (port <i>PORTNUM</i>)</b>".
<code>SocketNode</code> client threads are named:
"<b>Logback SocketNode (client: <i>IPADDR</i>)</b>".
</p>
<p>Fixed silently lost messages from <code>SyslogAppender</code>
when they exceeded the system datagram size limit. The default max
message size was hard coded to 65KB but now matches the system limit
(as read from
<a href="http://docs.oracle.com/javase/6/docs/api/java/net/DatagramSocket.html#getSendBufferSize()">
<code>DatagramSocket#getSendBufferSize()</code></a>) unless a
nonzero limit is specified via <code>SyslogAppender#setMaxMessageSize()</code>.
(<a href="http://jira.qos.ch/browse/LOGBACK-926">LOGBACK-926</a>)
</p>
<p>Fixed various documentation typos, including
<a href="http://jira.qos.ch/browse/LOGBACK-466">LOGBACK-466</a>,
<a href="http://jira.qos.ch/browse/LOGBACK-768">LOGBACK-768</a>,
<a href="http://jira.qos.ch/browse/LOGBACK-904">LOGBACK-904</a>,
<a href="http://jira.qos.ch/browse/LOGBACK-921">LOGBACK-921</a>,
and
<a href="http://jira.qos.ch/browse/LOGBACK-927">LOGBACK-927</a>.
</p>
<p><code>ContextBase.setStatusManager</code> now correctly validates
the given status manager.
(<a href="http://jira.qos.ch/browse/LOGBACK-912">LOGBACK-912</a>)
</p>
<p>The <code>SocketNode</code> creates an <code>ObjectInputStream</code>
using the socket's input stream, which blocks waiting for the
stream header. This wait has been moved from the constructor to
<code>SocketNode.run()</code> so that the node can be created without
blocking.
(<a href="http://jira.qos.ch/browse/LOGBACK-350">LOGBACK-350</a>)
</p>
<p>Fixed <code>SecurityException</code> during initialization
in Google AppEngine.
(<a href="http://jira.qos.ch/browse/LOGBACK-760">LOGBACK-760</a>)
</p>
<p>The <code><include></code> element now allows optional
resources (previously, only optional files).
(<a href="http://jira.qos.ch/browse/LOGBACK-644">LOGBACK-928</a>)
</p>
<p>Added new layout conversion word (<b>%D</b> or <b>%elapsedTime</b>),
which gets the time taken to serve the request. This applies
only to Jetty and Tomcat logs via logback-access.
(<a href="http://jira.qos.ch/browse/LOGBACK-320">LOGBACK-320</a>)
</p>
<p>Fixed SMTP error when the subject line contained multiple
new-lines.
(<a href="http://jira.qos.ch/browse/LOGBACK-865">LOGBACK-865</a>)
</p>
<p>Fixed unnecessary re-initialization of the servlet's
<code>LoggerContext</code> while attempting to destroy it.
</p>
<p>Added the following syslog facilities to <code>SyslogStartConverter</code>:
NTP, AUDIT, ALERT, CLOCK
(<a href="http://jira.qos.ch/browse/LOGBACK-754">LOGBACK-754</a>)
</p>
<p>Fixed <code>NullPointerException</code> when setting a JUL
logger's level to null, which should have reset the logger level
to the parent's effective level.
(<a href="http://jira.qos.ch/browse/LOGBACK-906">LOGBACK-906</a>)
</p>
<p>Added support to get suppressed exceptions. This is currently
only implemented for <code>RootCauseFirstThrowableProxyConverter</code>
and <code>ThrowableProxyConverter</code>.
(<a href="http://jira.qos.ch/browse/LOGBACK-516">LOGBACK-516</a>)
</p>
<p>Fixed problem of Janino classes not found in some environments
(axis2, GWT, etc.).
(<a href="http://jira.qos.ch/browse/LOGBACK-832">LOGBACK-832</a>)
</p>
<p>Fixed various unit tests, including modifications for consistent
results in Jenkins.
(<a href="http://jira.qos.ch/browse/LOGBACK-842">LOGBACK-842</a>)
</p>
<p>Allow Gaffer to read the <code>logback.debug</code> system
property to enable verbose output during Groovy-based configuration.
Also added debug statements to Gaffer.
</p>
<p>Fixed <code>IllegalArgumentException</code> when missing periods
and dollar signs in the logger name.
(<a href="http://jira.qos.ch/browse/LOGBACK-384">LOGBACK-384</a>)
</p>
<p>Fixed <code>NullPointerException</code> during JNDI lookup.</p>
<p>Fixed dangling data source connections from <code>DBAppender</code>
that caused <i>"maximum open cursors exceeded"</i>.</p>
<p>Fixed incorrect stack trace depth when specifying <code>%throwable</code>
with argument.
(<a href="http://jira.qos.ch/browse/LOGBACK-160">LOGBACK-160</a>)
</p>
<p>Fixed MySQL setup script to use lower-case table name to
match the references in the file. This had caused an error
on systems where case sensitivity matters.</p>
<p>Fixed <code>NullPointerException</code> when getting code source in
<code>PackagingDataCalculator</code>.</p>
<p>The search path for <code>logback-access.xml</code> is now
<code>${catalina.base}</code> and then <code>${catalina.home}</code>
if not found.
(<a href="http://jira.qos.ch/browse/LOGBACK-844">LOGBACK-844</a>)
</p>
<p>The <code>LoggingEvent</code> constructor delays message
formatting so that it can be computed lazily by the
<code>getFormattedMessage</code> method. This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-873">LOGBACK-873</a> and
re-fixes <a
href="http://jira.qos.ch/browse/LOGBACK-495">LOGBACK-495</a>.
</p>
<p><code>PackagingDataCalculator</code> now checks for the case
where the caller has no protection domain. This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-617">LOGBACK-617</a>
reported by Yuri de Wit. The relevant fix was provided by Mikhail
Mazursky.
</p>
<hr width="80%" align="center" />
<h3>May 10th, 2013 - Release of version 1.0.13</h3>
<p>In logback-access MANIFEST file, imports of Jetty and Tomcat
are now optional. This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-300">LOGBACK-300</a>
reported by Christian Brensing who also provided the appropriate
pull request.
</p>
<p>Logback will now correctly parses variables with a default
separator string nested within accolades, e.g. "{a:-b}". Such
strings resemble variable references but lack the $ prefix, e.g
"${a:-b}". This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-859">LOGBACK-859</a>
reported by Yoni Moses.</p>
<p>In <code>InterpretationContext</code> class replaced code using
JDK 1.6 API with code using JDK 1.5. This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-860">LOGBACK-860</a>
reported by Bas Stoker.
</p>
<p>Updated the "org.fusesource.jansi:jansi" dependency to version
1.9.</p>
<hr width="80%" align="center" />
<h3>April 26th, 2013 - Release of version 1.0.12</h3>
<p>A new <code>SSLSocketAppender</code> extends the basic
<code>SocketAppender</code> providing the ability to deliver
logging events over the Secure Socket Layer (SSL). The
corresponding <code>SimpleSSLSocketServer</code> extends the classic
<code>SimpleSocketServer</code> as a basic logging server
application that receives logging events from a
<code>SSLSocketAppender</code>.</p>
<p class="highlight">Receiver components are configured in
logback.xml just like any other logback component.</p>
<p>While <code>SimpleSocketServer</code> (and its new SSL-enabled
counterpart, <code>SimpleSSLSocketServer</code>) provide an
easy-to-use standalone logging server application, a new component
type known as a <em>receiver</em> allows <em>any</em> application
to receive logging events from remote appenders over a TCP/IP network
connection, using Logback Classic. Receiver components are
configured in <em>logback.xml</em> just like any other logback
component.</p>
<p>A receiver can either listen passively for connections from
remote <code>SocketAppender</code> components acting as clients,
or it can assume the client role, initiating a connection to a
remote appender acting as a server. The receiver components
shipped with Logback include full support for logging event
delivery over the Secure Sockets Layer (SSL).</p>
<p>All of the new socket-based receiver and appender components were
contributed by Carl Harris. See
<a href="manual/receivers.html">Receivers</a> in the Logback Manual
for more information on configuring receiver components. See
<a href="manual/appenders.html#SocketAppender">SocketAppender</a> and
<a href="manual/appenders.html#serverSocketAppender">ServerSocketAppender</a>
for information on configuring appenders as event sources for
receiver components.</p>
<p><code>RollingFileAppender</code> will now detect when <span
class="option">file</span> property collides with <span
class="option">fileNamePattern</span>, emit <a
href="codes.html#rfa_collision">an error message</a> and refuse to
initialize. This was requested in <a
href="http://jira.qos.ch/browse/LOGBACK-796">LOGBACK-796</a> by
Karl Pietrzak who also provided a patch.
</p>
<p>In configuration files, the <code><include></code> element
now admits the <span class="attr">optional</span> attribute. This
fixes <a
href="http://jira.qos.ch/browse/LOGBACK-230">LOGBACK-230</a>
reported by Attila Kiraly. Many thanks to Tommy Becker who
contributed a patch.</p>
<p>In response to <a
href="http://jira.qos.ch/browse/LOGBACK-829">LOGBACK-829</a>,
serialization of <code>Logger</code> instances has been
significantly simplified and much unnecessary bloat removed. As an
added bonus, the new serialization of <code>Logger</code> objects
is also compatible with serialization streams using older Logger
instances. <code>Logger</code> instances serialized by logback
1.0.11 and earlier can be read by logback version 1.0.12 and later
and <em>vice-versa</em>.
</p>
<p>The code detecting whether Groovy is available on the class
path deals with the case where logback binaries are installed as
endorsed libraries. This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-831">LOGBACK-831</a>.
</p>
<p class="highlight">Groovy configurator no longer supports
<code>SiftingAppender</code>.</p>
<p>In response to <a
href="http://jira.qos.ch/browse/LOGBACK-244">LOGBACK-244</a>, <a
href="http://jira.qos.ch/browse/LOGBACK-724">LOGBACK-724</a> and
in particular patches provided by Tommy Becker and David Roussel
component tracking code has been simplified and completely
re-written. <code>SiftingAppender</code> now supports the <a
href="manual/appenders.html#siftTimeout">timeout</a> and <a
href="manual/appenders.html#siftMaxAppenderCount">maxAppenderCount</a>
parameters. As a direct consequence of modifications to component
tracking code, the groovy configurator no longer supports
<code>SiftingAppender</code>.</p>
<p>SiftingAppender now propagates properties defined elsewhere in
the configuration file into the configuration process of nested
appenders. This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-833">LOGBACK-833</a> with
David Roussel providing the appropriate patch.
</p>
<p>As all other actions affecting properties,
<code>TimestampAction</code> now inserts the user-specified
property into the local scope by default. The property was
inserted into the context scope in earlier versions of logback.
This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-835">LOGBACK-835</a> with
David Roussel providing the appropriate patch.
</p>
<p>Logback is now able to retrieve the name of localhost when
running under OS X and Java 7. This issue was reported by <a
href="http://jira.qos.ch/browse/LOGBACK-749">LOGBACK-749</a> by
Oliver Schrenk with patches provided by Ralph Goers and Pavel
Valodzka.
</p>
<p>The <a href="manual/layouts.html#mdc">mdc</a> converter can now
handle default values. This feature was requested in <a
href="http://jira.qos.ch/browse/LOGBACK-246">LOGBACK-246</a> by
Michael Osipov with Denis Bazhenov providing a patch.
</p>
<p><code>DBAppender</code> in logback-classic module no longer
assumes that caller information is always available. This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-805">LOGBACK-805</a>
reported by Daris Cooper who also provided a corrective patch.</p>
<p>In order to simplify our build, several unit tests have been
ported from Scala to Java. It follows that logback no longer
depends on Scala, not even during the test phase of the build.</p>
<h3>25th of March, 2013 - Release of version 1.0.11</h3>
<p>Under Unix*, the basic/quick file rename method supplied by
Java does not work if the source and target files are on different
file systems. This problem was reported in <a
href="http://jira.qos.ch/browse/LOGBACK-108">LOGBACK-108</a> by
Daniel Potter. In order to deal with this issue, logback now will
perform rename by copying if the source and target files are on
different file systems and the host JDK is version 1.7 or
later. See also the related <a
href="codes.html#renamingError">error code</a>.</p>
<p>The "cn" conversion word now correctly maps to
<code>ContextNameConverter</code> class. This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-463">LOGBACK-463</a>
reported by Michael Osipov with Mark A. Ziesemer providing the
appropriate patch.
</p>
<p>Added gray to the list of <a
href="manual/layouts.html#coloring">ANSI colors supported by
logback</a>. The relevant pull request was kindly provided by
Craig P. Motlin.</p>
<p>The <code>discoverConnectionProperties()</code> method in class
<code>ConnectionSourceBase</code> no longer leaks
connections. This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-798">LOGBACK-798</a>
reported by Sayevskiy Viacheslav. Many thanks to Ivan
(Wee-Willie-Winkie) who contributed the appropriate fix.
</p>
<p>In logback-access, more correct determination of whether
contents of an <code>HttpServletRequest</code> are URL encoded or
not. The <a href="https://github.com/qos-ch/logback/pull/71">bug
fix</a> was submitted by David Schneider. The same issue was later
independently reported by Grzegorz Kuligowski in <a
href="http://jira.qos.ch/browse/LOGBACK-814">LOGBACK-814</a>.</p>
<p>Both <code>SocketAppenderBase</code> and
<code>SimpleSocketServer</code> now use a socket factory to create
sockets. These changes were asked in <a
href="http://jira.qos.ch/browse/LOGBACK-815">LOGBACK-815</a> and
<a href="http://jira.qos.ch/browse/LOGBACK-816">LOGBACK-816</a> by
Carl Harris who also contributed the relevant patch.
</p>
<hr width="80%" align="center" />
<h3>15th of March, 2013 - Release of version 1.0.10</h3>
<p>Upgraded the (optional) groovy dependency to version 2.0.7
(from 2.0.0).</p>
<p>The logger cache field in <code>LoggerContext</code> now uses a
<code>ConcurrentHashMap</code> instead of a regular
<code>HashMap</code>. This dramatically improves the speed of
logger retrieval and incidentally fixes <a
href="http://jira.qos.ch/browse/LOGBACK-142">LOGBACK-142</a>.
</p>
<p>In <code>SyslogAppender</code> allow <a
href="manual/appenders.html#syslogSuffixPattern">suffixPattern</a>
to begin with literal text. This issue was reported Bruno Polaco
in <a href="http://jira.qos.ch/browse/LOGBACK-782">LOGBACK-782</a>
who also provided the relevant patch.
</p>
<p>In order to reduce unnecessary boilerplate several common types
and packages are now <a
href="manual/groovy.html#AutomaticImports">imported
automatically</a>. This feature was contributed by Joris
Kuipers.</p>
<p>Computation of caller information now takes into account Groovy
frames (if nunning under Groovy). This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-811">LOGBACK-811</a>.</p>
<hr width="80%" align="center" />
<h3>December 5th, 2012 - Release of version 1.0.9</h3>
<p>Removed an erroneous compile-time dependency on Tomcat in the
logback-classic module. This issue was reported by Arnaud
Heritier.</p>
<hr width="80%" align="center" />
<h3>December 4th, 2012 - Release of version 1.0.8</h3>
<div class="breaking">
<h4>logback-classic updated to use SLF4J version 1.7.2 instead
of version 1.6.6.</h4>
<p>The logback-classic module now uses SLF4J version 1.7.2
instead of version 1.6.6. This only impacts projects running
under an OSGi platform as SLF4J versions 1.7.x and 1.6.x are
100% binary compatible.</p>
</div>
<p>Fixed incorrect <code>BufferStream</code> assignment after
recovery in <code>ResilientFileOutputStream</code>. This issue was
reported in <a
href="http://jira.qos.ch/browse/LOGBACK-765">LOGBACK-765</a> by
David Markwick.
</p>
<p>Fixed incorrect parsing of variables in case of colon character
followed by a dollar character. This issue was reported in <a
href="http://jira.qos.ch/browse/LOGBACK-744">LOGBACK-744</a>.</p>
<p><code>SyslogAppender</code> now sends out the header line of
stack traces. This issue was reported <a
href="http://jira.qos.ch/browse/LOGBACK-411">LOGBACK-411</a> and
separately as <a
href="http://jira.qos.ch/browse/LOGBACK-750">LOGBACK-750</a>.</p>
<p>A <code>StatusListener</code> implementing
<code>LifeCycle</code> interface was not started if specified via
the <code>logback.statusListenerClass</code> system property. This
issue was reported in <a
href="http://jira.qos.ch/browse/LOGBACK-767">LOGBACK-767</a> by
Adam Sokowicz.
</p>
<p>In order to avoid duplication, automatic status printing will
be disabled if the user explicitly registers a status
listerner.</p>
<p>Added <code>OnErrorConsoleStatusListener</code> to print status
messages on the error console, i.e. on System.err. This feature
was requested in <a
href="http://jira.qos.ch/browse/LOGBACK-292">LOGBACK-292</a> by
Abraham Lin. </p>
<p>Added <code>NopStatusListener</code> class which simply drops
incoming status messages. By <a
href="manual/configuration.html#logback.statusLC">explicitly
registering</a> a <code>NopStatusListener</code> listener,
automatic status printing can be turned off.
</p>
<hr width="80%" align="center" />
<h3>24th of August, 2012 - Release of version 1.0.7</h3>
<div class="breaking">
<h4>Janino library upgraded to version 2.6.1.</h4>
<p>As of Janino version 2.6.0, in addition to
<em>janino.jar</em>, <em>commons-compiler.jar</em> needs to be
on the class path as well. Please see the <a
href="setup.html#janino">Janino setup</a> instructions.</p>
</div>
<p>
</p>
<div class="breaking">
<h4>Groovy dependency upgraded to version 2.0.0.</h4>
<p>Please see the <a href="setup.html#groovy">Groovy setup</a>
instructions.</p>
</div>
<p>The code handling variable substitution has been completely
re-written. As requested in <a
href="http://jira.qos.ch/browse/LOGBACK-729">LOGBACK-729</a>,
variables can be now be nested arbitrarily, even within the
default value section. For example,
<code>${a${b:-c}:-${d:-e}}</code> is now a valid logback variable
expression yielding "e", assuming variables with the keys 'd', 'b'
and 'ac' are undefined. The new variable substitution code is
designed to be backward compatible with existing configuration
files.
</p>
<p>Substitution properties are now correctly recognized by <span
class="attr">scan</span> and <span class="attr">scanPeriod</span>
attributes of <code><configuration></code> element in
configuration files. This fixes <a
href="http://jira.qos.ch/browse/LOGBACK-396">LOGBACK-396</a>
reported by Oh Chin Boon</p>
<p>The color-related conversion words now set the default color
correctly. Xu Huisheng provided the relavant patch.
</p>
<p>Fixed a race-condition in <code>AsyncAppender</code> and its
worker thread. This issue was reported in <a
href="http://jira.qos.ch/browse/LOGBACK-720">LOGBACK-720</a> by
Arnd Hannemann who also supplied the relevant patch.</p>
<p>If a <code>PropertyDefiner</code> implements
<code>LifeCycle</code>, then its <code>start()</code> method will
now be invoked.</p>
<p>Added the <span class="prop">includeCallerData</span> property
in <code><a
href="manual/appenders.html#smtpIncludeCallerData">SMTPAppender</a></code>
to precompute caller data before storing events for future
transmission. This property addresses <a
href="http://jira.qos.ch/browse/LOGBACK-734">LOGBACK-734</a>
reported by Patrick Hogarty.
</p>
<hr width="80%" align="center" />
<h3>7th of June, 2012 - Release of version 1.0.6</h3>
<p><a
href="manual/appenders.html#SMTPAppender"><code>SMTPAppender</code></a>
now supports the retrieval of a <code>javax.mail.Session</code>
resource from JNDI. This feature was requested in <a
href="http://jira.qos.ch/browse/LBCLASSIC-332">LBCLASSIC-332</a>
by Hrotko Gabor.</p>
<p>Listeners passed to <code>statusListener()</code> method in
<code>GafferConfigurator</code> (the groovy configurator) are now
correctly started.</p>
<hr width="80%" align="center" />
<h3>6th of June, 2012 - Release of version 1.0.5</h3>
<p><a
href="manual/appenders.html#ConsoleAppender"><code>ConsoleAppender</code></a>
can now activate the <a href="http://jansi.fusesource.org">Jansi
library</a> for ANSI color code support on Windows
systems. Unix-based operating systems such as Linux and Mac OS X
already support ANSI color codes by default.</p>
<p><code>PatternLayout</code> now supports <a
href="manual/layouts.html#coloring">composite conversion
specifiers for coloring</a>.</p>
<hr width="80%" align="center" />
<h3>31st of May, 2012 - Release of version 1.0.4</h3>
<p>Added <code>AsyncAppender</code> for asyncronous invocation of
nested appenders. This was a long standing and popular request as
attested by <a
href="http://jira.qos.ch/browse/LBCLASSIC-177">LBCLASSIC-177</a>,
<a href="http://jira.qos.ch/browse/LBCORE-92">LBCORE-92</a> and <a
href="http://jira.qos.ch/browse/LBCLASSIC-242">LBCLASSIC-242</a>.</p>
<p><code>SMTPAppender</code> now admits the <span
class="prop">asynchronousSending</span> property, set to 'true' by
default. However, it can be set to 'false' for synchronous email
transmission. This property was requested in <a
href="http://jira.qos.ch/browse/LBCLASSIC-323">LBCLASSIC-323</a>
by Patrick Houk.</p>
<p>It is now possible to set a system property called <a
href="manual/configuration.html#automaticStatusPrinting">"logback.debug"</a>
in order to force printing of internal status messages on the
console regardless of the value of the <span
class="attr">debug</span> attribute found within the
<code><configuration></code> element. This behavior was
requested in <a
href="http://jira.qos.ch/browse/LBCLASSIC-225">LBCLASSIC-225</a>
by Aaron Digulla with the relevant patch kindly provided by Antony
Stubbs.
</p>
<p><code>MarkerFilter</code> now correctly recognizes nested
markers. This issue was reported in <a
href="http://jira.qos.ch/browse/LBCLASSIC-295">LBCLASSIC-295</a>
by Paolo Mazzoncini who also provided the relevant patch.</p>
<p>Fixed invalid multiple configuration warning when deployed
under Weblogic. This issue was reported in <a
href="http://jira.qos.ch/browse/LBCLASSIC-159">LBCLASSIC-159</a>
by Hontvári József and with the appropriate patch
provided by Derek Mahar.
</p>
<p><a
href="manual/appenders.html#SyslogAppender"><code>SyslogAppender</code></a>
now admits the <span class="prop">throwableExcluded</span>
property allowing the exclusion of throwable data if so
desired. This solves <a
href="http://jira.qos.ch/browse/LBCLASSIC-327">LBCLASSIC-327</a>
reported by Don Faulkner.
</p>
<p><a
href="manual/appenders.html#SyslogAppender"><code>SyslogAppender</code></a>
now admits the <span class="prop">stackTracePattern</span>
property allowing the customization of the string appearing just
before each stack trace line. This fixes <a
href="http://jira.qos.ch/browse/LBCLASSIC-333">LBCLASSIC-333</a>
reported by Ingebrigt Berg who also provided the relavant patch.
</p>
<p><code>DBAppender</code> now supports SQLite. This feature was
requested in <a
href="http://jira.qos.ch/browse/LBGENERAL-53">LBGENERAL-53</a> by
Tony Trinh who also provided the relevant patch.</p>
<h3>4th of May, 2012 - Release of version 1.0.3</h3>
<p><code>PatternLayoutEncoder</code> class now admits the <span
class="prop"><a
href="manual/encoders.html#LayoutWrappingEncoder">immediateFlush</a></span>
property (set to true by default). By setting this property to
'false', logging throughput can be quintupled, although your
mileage may vary. This enhancement was requested in <a
href="http://jira.qos.ch/browse/LBCORE-243">LBCORE-243</a>.
</p>
<p>In order to facilitate parsing of log files, logback can now <a
href="manual/encoders.html#outputPatternAsHeader">output the
pattern</a> used for the log output at the top of log files as a
header. This feature was requested by James Strachan in <a
href="http://jira.qos.ch/browse/LBCORE-234">LBCORE-234</a>.
</p>
<p><code>SMTPAppender</code> failed to transmit messages under JDK
1.5. After some investigation, Dave discovered that this was due to
setting the <code>corePoolSize</code> parameter of the relevant
<code>ThreadPoolExecutor</code> to 0. Setting
<code>corePoolSize</code> to a higher value, e.g. 1, under JDK 1.5
solves the problem and fixes <a
href="http://jira.qos.ch/browse/LBCLASSIC-323">LBCLASSIC-323</a>
reported by Lutz Huehnken.
</p>
<p><code>LevelChangePropagator</code> now retains references to
j.u.l. loggers whose level it sets. This fixes garbage collection
issues reported in <a
href="http://jira.qos.ch/browse/LBCLASSIC-256">LBCLASSIC-256</a>
by Samuel Stanojevic who also provided the appropriate patch.
</p>
<h3>26th of April, 2012 - Release of version 1.0.2</h3>
<div class="breaking">
<h4><span class="label">Breaking change partially reverted in
1.0.3</span><br/>By default <code>PatternLayout</code> will now output
its pattern at the top of log files</h4>
<p>This feature, although still available, is no longer enabled by
default. See release notes for version 1.0.3 for details.
</p>
</div>
<p><code>ReconfigureOnChangeFilter</code> will avoid excessive
syncronization in case of CPU intensive applications. This fixes
<a
href="http://jira.qos.ch/browse/LBCLASSIC-234">LBCLASSIC-234</a>,
a recalcitrant bug reported by Uri Unger who also provided the key
steps for reproducing it.
</p>
<p><code>RollingFileAppender</code> now creates missing
directories for compressed archive files. This fixes <a
href="http://jira.qos.ch/browse/LBCORE-169">LBCORE-169</a>
reported by Tomasz Nurkiewicz with patches supplied by Paulo
Andrade and Mats Henrikson.
</p>
<p><code>SizeAndTimeBasedFNATP</code> will now remove files with
indexes higher than 99. It will also correctly compute the highest
index value when an application is restarted. This fixes bug <a
href="http://jira.qos.ch/browse/LBCORE-221">LBCORE-221</a>
reported by Dieter Mueller and Dawid Chodura.</p>
<hr width="80%" align="center" />
<h3>7th of March, 2012 - Release of version 1.0.1</h3>
<p>Setting the debug attribute to true in the
<code><configuration></code> element now registers a
<code>OnConsoleStatusListener</code> with the
<code>StatusManager</code>. Thus, problems occurring during the
lifetime of your application, well after logback is initialized,
can be reported when the <span class="attr">debug</span> attribute
is set. This behavior is closer to what users expect.
</p>
<p>Added new property the <span
class="prop">cleanHistoryOnStart</span> to <a
href="manual/appenders.html#TimeBasedRollingPolicy">TimeBasedRollingPolicy</a>.
By setting this property to <code>true</code>, history removal
will work as expected even in the case of short lived
applications. This fixes <a
href="http://jira.qos.ch/browse/LBCORE-226">LBCORE-226</a>
reported by Bruce E. Irving.
</p>
<p>It is now possible to specify multiple %d tokens in the file
name pattern of <a
href="manual/appenders.html#TimeBasedRollingPolicy">TimeBasedRollingPolicy</a>. Auxiliary
%d tokens must be marked as such by passing the AUX
parameter. This feature was requested in <a
href="http://jira.qos.ch/browse/LBCORE-242">LBCORE-242</a> by
Thomas Corte.</p>
<p>Logback now supports suppressed exceptions introduced in Java
7. This fixes <a
href="http://jira.qos.ch/browse/LBCLASSIC-276">LBCLASSIC-276</a>.
</p>
<p><code>SMTPAppender</code> clears the relevant cyclic buffer
before asynchronous transmission. This corrects <a
href="http://jira.qos.ch/browse/LBCLASSIC-221">LBCLASSIC-221</a>
as reported by Chris Cheshire.
</p>
<p><code>SiftingAppender</code> will consider stale and
consequently remove nested appenders which are closed or
improperly started. This caters for the use case described in <a
href="http://jira.qos.ch/browse/LBCLASSIC-316">LBCLASSIC-316</a>
by Guus Bloemsma.</p>
<p><code>RequestLogImpl</code> can now lookup for the
logback-access configuration file as a class path resource. This
feature was requested in <a
href="http://jira.qos.ch/browse/LBACCESS-26">LBACCESS-26</a> by
Marshall Pierce.
</p>
<p>Updated the Janino dependency to version 2.5.16. In addition,
the code checking for the availability of Janino on the class path
was updated to take Janino 2.6 into account, thus fixing <a
href="http://jira.qos.ch/browse/LBCORE-210">LBCORE-210</a>.
</p>
<hr width="80%" align="center" />
<h3>1st of November, 2011 - Release of version 1.0.0</h3>
<p>The logback-access module now targets Tomcat 7.x and Jetty 7.x
& 8.x as its servlet container platforms. This fixes <a
href="http://jira.qos.ch/browse/LBACCESS-17">LBACCESS-17</a>
reported by Grzegorz Grzybek.</p>
<div class="breaking">
<h4>Breaking change: properties are no longer automatically
inserted into the context</h4>
<p>Properties now have a scope. Previously, the definition of a
property added it to the context. As of version 1.0, properties
are local, i.e. transient by default. For further details, please
refer to the <a
href="manual/configuration.html#variableSubstitution">documentation
on properties</a>.</p>
</div>
<p>Environment variables are now looked up during property
substitution. This feature was requested in <a
href="http://jira.qos.ch/browse/LBCORE-212">LBCORE-212</a> by
Alexandre Garnier.
</p>
<p><code>SMTPAppender</code> now sends emails asynchronously.</p>
<p>Investigation of <a
href="http://jira.qos.ch/browse/LBCORE-224">LBCORE-224</a>
reported by Cesar Alvarez Nunez points to bug in the JVM rather
than in logback. A workaround has been found by using
<code>CopyOnWriteArrayList</code> instead of the apparently buggy
<code>ReadWriteLock</code>.</p>
<p>In STARTTLS mode, "mail.smtp.auth" property is no longer set
automatically. This fixes <a
href="http://jira.qos.ch/browse/LBCORE-225">LBCORE-225</a>
reported by Mark Woon.</p>
<p>Logback-access now supports conditional configuration. This
fixes <a
href="http://jira.qos.ch/browse/LBACCESS-27">LBACCESS-27</a>
reported by Marshall Pierce.</p>
<p>Logback-access now supports inclusion of configuration
files. See the <a
href="manual/configuration.html#fileInclusion">chapter about
configuration</a> in the logback's online manual for more
information. </p>
<p>Added <code>ch.qos.logback.core.read</code> to "Import-Package"
declaration in logback-classic's manifest file. This fixes <a
href="http://jira.qos.ch/browse/LBCLASSIC-131">LBCLASSIC-131</a>
reported by Michal Prihoda and Thomas Jaeckle.</p>
<p>Fixed infinitely recursive calls in
<code>AccessConverter#addError</code> methods as reported in <a
href="http://jira.qos.ch/browse/LBACCESS-25">LBACCESS-25</a> by
Pierre Queinnec.
</p>
<p>Fixed incorrect switch fallthrough while selecting between the
H2 and HSQL dialects as reported in <a
href="http://jira.qos.ch/browse/LBCORE-218">LBCORE-218</a> by
Pierre Queinnec.
</p>