1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
4<html xmlns="http://www.w3.org/1999/xhtml">
5  <head>
6    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
7    <title>SLF4J News</title>
8    <link rel="stylesheet" type="text/css" media="screen" href="css/site.css" />
9    <link rel="stylesheet" type="text/css" href="css/prettify.css" />
10  </head>
11 <body onload="prettyPrint()">
12    <script type="text/javascript">prefix='';</script>
13    <script type="text/javascript" src="js/prettify.js"></script>
14
15    <script src="templates/header.js" type="text/javascript"></script>
16    <div id="left">
17      <script src="templates/left.js" type="text/javascript"></script>
18    </div>
19    <div id="content">
20
21
22   <h1>SLF4J News</h1>
23
24   <p>Please note that you can receive SLF4J related announcements by
25   subscribing to the <a
26   href="http://www.qos.ch/mailman/listinfo/announce">QOS.ch
27   announce</a> mailing list.
28   </p>
29
30   <hr noshade="noshade" size="1"/>
31
32   <h3>March 26th, 2015 - Release of SLF4J 1.7.12</h3>
33
34   <p>All java files have been reformatted to with the code formatter
35   style defined in <i>codeStyle.xml</i>. This style uses 4 spaces for
36   indentation and a maximum line width of 160.</p>
37
38   <p>As SLF4J requires JDK 1.5 or later, the
39   <code>Bundle-RequiredExecutionEnvironment</code> declaration in the
40   various MANIFEST files have been updated to J2SE-1.5.
41   </p>
42
43   <p>Added missing Bundle-ManifestVersion attribute in the MANIFEST
44   files in log4j-over-slf4j. The issue was raised in <a
45   href="http://jira.qos.ch/browse/SLF4J-321">SLF4J-231</a> by Nikolas
46   Falco who also provided the the appropriate pull request. </p>
47
48   <p>Added <code>getAppender(String)</code> method in
49   <code>Category</code> class in the log4j-over-slf4j module. This
50   addition was requested by Ramon Gordillo in <a
51   href="http://jira.qos.ch/browse/SLF4J-319">SLF4J-319</a>.
52   </p>
53
54   <p>Added <code>setThreshold</code> method in
55   <code>AppenderSkeleton</code> class in the log4j-over-slf4j
56   module. This addition was requested by Dimitrios Liapis who also
57   provided the appropriate pull request.
58   </p>
59
60   <p>Added <code>getParent</code> method in <code>Category</code>
61   class in the log4j-over-slf4j module. This addition was requested
62   by Himanshu Bhardwaj in <a
63   href="http://jira.qos.ch/browse/SLF4J-318">SLF4J-318</a>.
64   </p>
65
66   <hr noshade="noshade" size="1"/>
67
68   <h3>6th of January, 2015 - Release of SLF4J 1.7.10</h3>
69
70   <p>The <code>MDC.putCloseable</code> method now explicitly returns
71   <code>MDC.MDCloseable</code> instead of the more generic
72   <code>java.io.Closeable</code>. This in turn allows one to write
73   try-with-resources statement without a catch clause. Many thanks to
74   William Delanoue for proposing this change.</p>
75
76   <p>The various constructors in <code>FileAppender</code> in the
77   log4j-over-slf4j module are now public.
78   </p>
79
80   <hr noshade="noshade" size="1"/>
81
82   <h3>16th of December, 2014 - Release of SLF4J 1.7.9</h3>
83
84   <p class="highlight"><a href="codes.html#loggerNameMismatch">Spot
85   incorrectly named loggers</a> by setting the
86   <code>slf4j.detectLoggerNameMismatch</code> system property to
87   true.</p>
88
89   <p><a href="codes.html#loggerNameMismatch">Spot incorrectly named
90   loggers</a> by setting the
91   <code>slf4j.detectLoggerNameMismatch</code> system property to
92   true.  This significant feature was contributed by Alexander
93   Dorokhine.</p>
94
95   <p>Added <code>MDC.putCloseable</code> method so that it can be
96   used as a <a
97   href="https://docs.oracle.com/javase/7/docs/technotes/guides/language/try-with-resources.html">closeable
98   resource</a> under Java 7.</p>
99
100   <p>Added <code>getContext</code> method returning a hashtable in
101   org.apache.log4j.MDC in the log4j-over-slf4j module.
102   </p>
103
104   <p>The introduction of the @Nonnull JSR 305 annotation in SLF4J
105   version 1.7.8 causes the Scala compiler to fail. This is issue has
106   been documented in <a
107   href="https://issues.scala-lang.org/browse/SI-5420">SI-5420</a>. Given
108   that many Scala users will be affected by this issue for the
109   foreseeable future, we have decided to renounce the user of JSR 305
110   annotations in SLF4J for the time being.
111	 </p>
112
113   <p>Numerous small code improvements too minor to be listed
114   here.</p>
115
116   <hr noshade="noshade" size="1"/>
117
118   <h3>4th of April, 2014 - Release of SLF4J 1.7.7 </h3>
119
120   <p>SFL4J API now uses generics. This enhancement was contributed by
121   Otavio Garcia. Due to erasure of generics in Java, the changes are
122   backward-compatible.</p>
123
124   <p>The slf4j-migrator can now convert statements using the long deprecated
125   <code>Category</code> class.</p>
126
127   <p>Added the <code>SimpleLayout</code> and
128   <code>FileAppender</code> classes to the log4j-over-slf4j
129   module.</p>
130
131
132   <h3>February 5th, 2014 - Release of SLF4J 1.7.6</h3>
133
134   <p>Added slf4j-android module to the slf4j distribution. This
135   module is contributed by Andrey Korzhevskiy.</p>
136
137   <p>Loggers created during the initialization phase are no longer
138   <code>NOPLoggers</code> which drop all logging calls. Instead,
139   SLF4J now creates substitute loggers which delegate to the
140   appropriate logger implementation after the initilization phase
141   completes. Only calls made to these loggers during the
142   initialization phase are dropped. This enhacement was proposed in
143   <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=311">bug 311</a>
144   by Chetan Mehrotra.
145   </p>
146
147   <p>Improvements to the <code>exit()</code> and
148   <code>throwing()</code> methods in <code>XLogger</code>. This
149   enhacement was requested in <a
150   href="http://bugzilla.slf4j.org/show_bug.cgi?id=197">bug 197</a>.
151   </p>
152
153   <p>Concunrrency improvement in <code>MessageFormatter</code>. This
154   improvement was contributed by Vivek Pathak in a <a
155   href="https://github.com/qos-ch/slf4j/pull/52">pull
156   request</a>.</p>
157
158   <p>Concunrrency improvement in
159   <code>BasicMarkerFactory</code>. This improvement was contributed
160   by Mikhail Mazursky in a <a
161   href="https://github.com/qos-ch/slf4j/pull/40">pull
162   request</a>.</p>
163
164   <p><code>JCLLoggerAdapter</code> was incorrectly invoking
165   <code>isDebugEnabled</code> calls in its <code>trace()</code>
166   methods. This issue was reported in <a
167   href="http://bugzilla.slf4j.org/show_bug.cgi?id=281">bug 281</a>.
168
169   </p>
170
171   <p>In the log4j-over-slf4j module, the <code>setLevel</code>
172   method in the <code>Category</code> class. This fixes <a
173   href="http://bugzilla.slf4j.org/show_bug.cgi?id=279">bug
174   279</a>. Alfredo Ramos provied the relevant patch.
175   </p>
176
177   <p>In the log4j-over-slf4j module, added empty implementations for
178   <code>OptionHander</code>, <code>WriterAppender</code>,
179   <code>ConsoleAppender</code> and <code>AppenderSkeleton</code>
180   classes.
181   </p>
182
183   <hr noshade="noshade" size="1"/>
184
185   <h3>25th of March, 2013 - Release of SLF4J 1.7.5</h3>
186
187   <p class="highlight">Given the significance of these performance
188   improvements, users are highly encouraged to migrate to SLF4J
189   version 1.7.5 or later. </p>
190
191   <p><span class="label notice">performance improvements</span> The
192   logger factories in most SLF4J modules namely in jcl-over-slf4j,
193   log4j-over-slf4j, slf4j-jcl, slf4j-jdk14, slf4j-log4j12, and
194   slf4j-simple now use a <code>ConcurrentHashMap</code> instead of a
195   regular <code>HashMap</code> to cache logger instances. This change
196   significantly improves logger retrieval times at the cost of some
197   memory overhead. This improvement was requested in <a
198   href="http://bugzilla.slf4j.org/show_bug.cgi?id=298">bug #298</a>
199   by Taras Tielkes who also provided the relevant patch.
200   </p>
201
202
203   <hr noshade="noshade" size="1"/>
204
205   <h3>18th of March, 2013 - Release of SLF4J 1.7.4</h3>
206
207   <p>Added a package private <code>reset()</code> method to
208   <code>SimpleLoggerFactory</code> for testing purposes.</p>
209
210   <hr noshade="noshade" size="1"/>
211
212   <h3>15th of March, 2013 - Release of SLF4J 1.7.3</h3>
213
214   <p>The jul-to-slf4j bridge now correctly handles cases where the
215   message string contains {}-placeholders but has no or zero
216   parameters. This fixes <a
217   href="http://bugzilla.slf4j.org/show_bug.cgi?id=212">bug
218   #212</a>. The relevant patch was provided by Matthew Preston in a
219   git pull request.</p>
220
221   <p>Added missing methods and classes in log4j-over-slf4j module for
222   Velocity compatibility.  This issue was reported in <a
223   href="http://bugzilla.slf4j.org/show_bug.cgi?id=280">bug 280</a> by
224   Thomas Mortagne.</p>
225
226   <hr noshade="noshade" size="1"/>
227
228   <h3>11th of October, 2012 - Release of SLF4J 1.7.2</h3>
229
230   <p>Added osgi-over-slf4j module which serves as an OSGi LogService
231   implementation delegating to slf4j. This module is maintained by
232   Matt Bishop and Libor Jelinek.</p>
233
234   <p> Christian Trutz added missing PatternLayout class as well as
235   several methods in the <code>Logger</code> and
236   <code>Category</code> classes. See commit 442e90ba5785cba9 dated
237   September 27th 2012 for details.
238   </p>
239
240   <p>Added org.slf4j.simpleLoggerwarnLevelString in slf4j-simple
241   module.</p>
242
243   <p>Fixed <a
244   href="http://bugzilla.slf4j.org/show_bug.cgi?id=272">bug
245   272</a>. All <code>Logger</code> implementations shipping with
246   SLF4J use <code>Object...</code> instead of <code>Object[]</code>
247   to avoid compiler warnings.</p>
248
249
250
251   <hr noshade="noshade" size="1"/>
252
253   <h3>14th of September, 2012 - Release of SLF4J 1.7.1</h3>
254
255   <p><a
256   href="apidocs/org/slf4j/impl/SimpleLogger.html"><code>SimpleLogger</code></a>
257   now supports writing to a file. The property names for configuring
258   <code>SimpleLogger</code> have been modified to be consistently in
259   camel case. More configuration options have been added. In the
260   absence of configuration directives, <code>SimpleLogger</code> will
261   behave exactly the same as in the past. <b>If you are one of the
262   few users configuring <code>SimpleLogger</code> with configuration
263   properties, you will need to adapt to the new and more consistent
264   property names.</b></p>
265
266   <hr noshade="noshade" size="1"/>
267
268   <h3>6th of September, 2012 - Release of SLF4J 1.7.0</h3>
269
270   <p><span class="bold big green">SLF4J now requires JDK 1.5.</span></p>
271
272   <p>Printing methods in the <a
273   href="apidocs/org/slf4j/Logger.html">Logger</a> interface now offers
274   variants accepting <a
275   href="http://docs.oracle.com/javase/1.5.0/docs/guide/language/varargs.html">varargs</a>
276   instead of Object[]. Given that under the hood, the Java compiler
277   transforms varargs into an array, this change is totally 100%
278   no-ifs-or-buts backward compatible with all existing client
279   code. </p>
280
281   <p>The logger field (of type <code>java.util.logging.Logger</code>)
282   in <code>JDK14LoggerAdapter</code> is now marked as transient. This
283   fixes <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=261">bug
284   #261</a>, a serialization problem reported by Thorbj&oslash;rn Ravn
285   Andersen.</p>
286
287   <hr noshade="noshade" size="1"/>
288
289   <h3>11th of June, 2012 - Release of SLF4J 1.6.6</h3>
290
291   <p>Source repository has been moved to <a
292   href="https://github.com/qos-ch/slf4j">https://github.com/qos-ch/slf4j</a>
293   on github.</p>
294
295   <p>In case multiple bindings are found on the class path, SLF4J
296   will now output the name of the framework/implementation class it
297   binds with.</p>
298
299   <p><a
300   href="apidocs/org/slf4j/impl/SimpleLogger.html">SimpleLogger</a>
301   now supports configuration properties. </p>
302
303   <p>LoggerWrapper in the slf4j-ext module now correctly deals with
304   markers. This fixes <a
305   href="http://bugzilla.slf4j.org/show_bug.cgi?id=265">bug #265</a>
306   reported by Dario Campagna.</p>
307
308   <p>The log4j-over-slf4j module now supports legacy projects
309   providing their own log4j <code>LoggerFactory</code>. This fixes <a
310   href="http://bugzilla.slf4j.org/show_bug.cgi?id=234">bug #234</a>
311   reported by Laurent Pellegrino with Piotr Jagielski providing the
312   appropriate patch.</p>
313
314   <h3>4th of June, 2012 - Release of SLF4J 1.6.5</h3>
315
316   <p>In the slf4j-log4j12 module, upgraded the log4j dependency to
317   version 1.2.17.</p>
318
319   <p>Added removeHandlersForRootLogger() method to <code><a
320   href="apidocs/org/slf4j/bridge/SLF4JBridgeHandler.html">SLF4JBridgeHandler</a></code>
321   class.</p>
322
323   <p>The log4j-over-slf4j module now exports all its packages in its
324   manifest. This issue was reported in <a
325   href="http://bugzilla.slf4j.org/show_bug.cgi?id=262">262</a> by
326   Mikhail Mazursky who also provided the relevant patch.
327   </p>
328
329   <h3>October 31st, 2011 - Release of SLF4J 1.6.4</h3>
330
331   <p>Fixed in thread-safety issues in <code>BasicMDCAdapter</code>
332   fixing <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=203">bug
333   #203</a> and <a
334   href="http://bugzilla.slf4j.org/show_bug.cgi?id=224">bug
335   #224</a>. Note that <code>BasicMDCAdapter</code> is only used with
336   the slf4j-jdk14.jar binding.
337   </p>
338
339   <p><code>BasicMDCAdapter</code> invoked a method introduced in JDK
340   1.5 preventing it from running under JDK 1.4. Interestingly enough,
341   this issue has never been reported by the user community.</p>
342
343   <h3>October 17th, 2011 - Release of SLF4J 1.6.3</h3>
344
345   <p><code>LogEvent</code> class in slf4j-ext module now correctly
346   passes the event data as a parameter object. This fixes <a
347   href="http://bugzilla.slf4j.org/show_bug.cgi?id=246">bug #246</a>
348   reported by Ralph Goers.
349   </p>
350
351   <p>Added missing OSGi manifest to the jul-to-slf4j module. This
352   fixes <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=166">bug
353   #166</a> reported by Ekkehard Gentz. </p>
354
355   <p>In the log4j-over-slf4j module, added missing
356   <code>getAllAppenders</code>() method in <code>Category</code>
357   class. This fixes <a
358   href="http://bugzilla.slf4j.org/show_bug.cgi?id=235">bug #235</a>
359   reported by Anthony Whitford.
360   </p>
361
362   <h3>August 19th, 2011 - Release of SLF4J 1.6.2</h3>
363
364   <p>Fixed <a
365   href="http://bugzilla.slf4j.org/show_bug.cgi?id=138">bug
366   #138</a>. SLF4J will no longer complain about multiple SLF4J
367   bindings when running under a Weblogic server.
368   </p>
369
370   <p>Fixed <a
371   href="http://bugzilla.slf4j.org/show_bug.cgi?id=228">bug
372   #228</a>. When running under IBM's JDK, and if no binding can be
373   found, SLF4J will no longer throw a
374   <code>NoClassDefFoundError</code>. Instead, it will default to an
375   NOP implementation. Under the same circumstances but with Sun's
376   JDK, SLF4J already defaulted to an NOP implementation since release
377   1.6.0.</p>
378
379   <p>Added certain missing classes to the log4j-over-slf4j module as
380   requested in <a
381   href="http://bugzilla.slf4j.org/show_bug.cgi?id=225">bug 225</a> by
382   Josh Stewart.
383   </p>
384
385   <hr noshade="noshade" size="1"/>
386
387   <h3>July 5th, 2010 - Release of SLF4J 1.6.1</h3>
388
389   <p>Updated log4j dependency to version 1.2.16 and <a
390   href="http://cal10n.qos.ch/">CAL10N</a> dependency to version
391   0.7.4.
392   </p>
393
394   <p>Fixed missing versioning OSGi metadata in the log4j-over-slf4j
395   module. This problem was reported in <a
396   href="http://bugzilla.slf4j.org/show_bug.cgi?id=187">bug 187</a> by
397   David Savage.
398   </p>
399
400
401
402   <hr noshade="noshade" size="1"/>
403
404   <h3>May 8th, 2010 - Release of SLF4J 1.6.0</h3>
405
406   <p>It is expected that <em>all</em> SLF4J releases in the 1.6.x
407   series will be mutually compatible.
408   </p>
409
410   <p>As of SLF4J version 1.6.0, in the absence of an SLF4J binding,
411   slf4j-api will default to a no-operation implementation discarding
412   all log requests. Thus, instead of throwing an exception, SLF4J
413   will emit a single warning message about the absence of a binding
414   and proceed to discard all log requests without further
415   protest. See also the <a href="manual.html#libraries">relevant
416   section</a> in the user manual.
417   </p>
418
419   <p>In the presence of multiple parameters and if the last argument
420   in a logging statement is an exception, then SLF4J will now presume
421   that the user wants the last argument to be treated as an exception
422   and not a simple parameter. See the relevant <a
423   href="faq.html#paramException">FAQ entry</a> for further
424   details. This fixes <a
425   href="http://bugzilla.slf4j.org/show_bug.cgi?id=70">bug 70</a>
426   submitted by Joern Huxhorn who also provided the relevant patch.
427   </p>
428
429   <p>The <code>log</code> method in <code>LocationAwareLogger</code>
430   interface now admits an additional parameter of type
431   <code>Object[]</code> representing additional arguments of the log
432   request. Due to this modification, slf4j-api version 1.6.x will not
433   work with bindings shipping with SLF4J 1.5.x -- bindings shipping
434   with 1.6.x must be used.
435   </p>
436
437
438   <p>Fixed <a
439   href="http://bugzilla.slf4j.org/show_bug.cgi?id=150">bug 150</a> by
440   implementing missing <code>resetConfiguration()</code> and
441   <code>shutdown()</code> methods in <code>LogManager</code> (in
442   log4j-over-slf4j) as nop. In addition, the
443   <code>getCurrentLoggers()</code> method has been implemented by
444   returning an empty enumeration.
445   </p>
446
447
448   <p>Fixed <a
449   href="http://bugzilla.slf4j.org/show_bug.cgi?id=170">bug 170</a> by
450   a bare-bones implementation of the <code>NDC</code> class in
451   log4j-over-slf4j.</p>
452
453   <p>Fixed <a
454   href="http://bugzilla.slf4j.org/show_bug.cgi?id=175">bug 175</a> by
455   synchronizing access to the loggerNameList field.</p>
456
457   <p>Fixed <a
458   href="http://bugzilla.slf4j.org/show_bug.cgi?id=164">bug 164</a>
459   observed when SLF4J artifacts were placed under
460   java.endorsed.dirs.</p>
461
462   <p>Fixed sub-optimal list type usage in
463   <code>SLF4JLogFactory</code> as reported in <a
464   href="http://bugzilla.slf4j.org/show_bug.cgi?id=179">bug 179</a> by
465   Sebastian Davids.
466   </p>
467
468
469   <p>Fixed documentation inconsistency in <code>SLF4JLog</code> as
470   reported in <a
471   href="http://bugzilla.slf4j.org/show_bug.cgi?id=180">bug 180</a> by
472   Sebastian Davids.
473   </p>
474
475
476   <hr noshade="noshade" size="1"/>
477
478   <h3>February 25th, 2010 - Release of SLF4J 1.5.11</h3>
479
480
481  <p>Users yet unfamiliar with SLF4J sometimes unknowingly place both
482  <em>log4j-over-slf4j.jar</em> and <em>slf4j-log4j12.jar</em>
483  simultaneously on the class path causing stack overflow
484  errors. Simultaneously placing both <em>jcl-over-slf4j.jar</em> and
485  <em>slf4j-jcl.jar</em> on the class path, is another occurrence of
486  the same general problem. As of this version, SLF4J preempts the
487  inevitable stack overflow error by throwing an exception with
488  details about the actual cause of the problem. This is deemed to be
489  better than leaving the user wondering about the reasons of the
490  <code>StackOverflowError</code>.
491  </p>
492
493  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=168">bug
494  168</a>. In case log4j-over-slf4j is used and a logback appender
495  requires a third party library which depends on log4j, the
496  <code>log(String FQCN, Priority p, Object msg, Throwable t)</code>
497  method in log4j-over-slf4j's Category class would throw an
498  <code>UnsupportedOperationException</code>. Problem reported by Seth
499  Call.</p>
500
501
502  <hr noshade="noshade" size="1"/>
503
504  <h3>December 3rd, 2009 - Release of SLF4J 1.5.10</h3>
505
506  <p>SLF4J version 1.5.10 consist of bug fixes and minor
507  enhancements. It is totally backward compatible with SLF4J version
508  1.5.8. However, the slf4j-ext module ships with a new package called
509  <code>org.slf4j.cal10n</code> which adds <a
510  href="localization.html">localized/internationalized logging</a>
511  support as a thin layer built upon the <a
512  href="http://cal10n.qos.ch">CAL10N API</a>.</p>
513
514  <p><a href="http://www.slf4j.org/android/">SLF4J-android</a>,
515  maintained by <a
516  href="http://dbis.cs.unibas.ch/team/thorsten-moller/dbis_staff_view">Thorsten
517  M&ouml;ller</a>, was added as a daughter project of SLF4J.
518  </p>
519
520  <p>Added missing "Export-Package" declaration for cal10n in the OSGi
521  manifest file for sfl4j-ext. This was requested in <a
522  href="http://bugzilla.slf4j.org/show_bug.cgi?id=156">bug 156</a> by
523  Pete Muir.</p>
524
525  <p>In log4j-over-slf4j, added missing log(...)  methods as requested
526  by Zoltan Szel in <a
527  href="http://bugzilla.slf4j.org/show_bug.cgi?id=139">bug report
528  139</a>.</p>
529
530  <p>In log4j-over-slf4j, added missing <code>LogManager</code> class
531  as requested by Rick Beton in <a
532  href="http://bugzilla.slf4j.org/show_bug.cgi?id=150">bug report
533  150</a>.</p>
534
535  <p>In the slf4j-ext module, added
536  <code>getCopyOfChildTimeInstruments</code> and
537  <code>getCopyOfGlobalStopWatch</code> methods to the
538  <code>Profiler</code> class. This enables developers to build their
539  own output formatters for a given Profiler. This feature was
540  requested by David Lindel&ouml;f in <a
541  href="http://bugzilla.slf4j.org/show_bug.cgi?id=141">bug 141</a>.
542  </p>
543
544  <p>Fixed a <code>NullPointerException</code> occurring in unspecified
545  conditions as described in <a
546  href="http://bugzilla.slf4j.org/show_bug.cgi?id=146">bug report
547  146</a> by Dapeng Ni.</p>
548
549  <p>Added missing OSGi manifest to the <em>log4j-over-slf4j</em>
550  module as requested by Wade Poziombka in <a
551  href="http://bugzilla.slf4j.org/show_bug.cgi?id=117">bug 117</a>.
552  </p>
553
554  <p>OSGi manifests produced by SLF4J now replace the '-' character by
555  '.' in compliance with the OSGi specification. This fixes <a
556  href="http://bugzilla.slf4j.org/show_bug.cgi?id=152">bug 152</a>
557  according to the patch supplied by Hugues Malphettes.
558  </p>
559
560  <p>Fixed packaging issue in jcl104-over-slf4j which inadvertently
561  produced a jar file as described in <a
562  href="http://bugzilla.slf4j.org/show_bug.cgi?id=151">bug 151</a> by
563  Jesse McConnell.</p>
564
565
566
567
568  <hr noshade="noshade" size="1"/>
569
570  <h3>June 11th, 2009 - Release of SLF4J 1.5.8</h3>
571
572  <p>SLF4J version 1.5.8 consist of bug fixes. It is totally backward
573  compatible with SLF4J version 1.5.7.</p>
574
575  <p>The Maven pom file for the <code>log4j-over-slf4j</code> module
576  contained a compile time dependency on the <code>slf4j-jdk14</code>
577  module. The dependency should have been declared in the test
578  scope. This problem was reported by Jean-Luc Geering on the slf4j
579  user list.
580  </p>
581
582  <h3>June 10th, 2009 - Release of SLF4J 1.5.7</h3>
583
584  <p>SLF4J version 1.5.7 consist of bug fixes and minor
585  enhancements. It is totally backward compatible with SLF4J version
586  1.5.6.</p>
587
588  <p>In SLF4J versions 1.5.5 and 1.5.6, the <code>LoggerFactory</code>
589  class which is at the core of SLF4J, if a version compatibility
590  issue was detected, accidentally invoked a method which was
591  introduced in JDK 1.5. Thus, instead of issuing a clear warning
592  message, SLF4J would throw a
593  <code>NoClassDefFoundError</code>. Consequently, SLF4J would not run
594  with JDK 1.4 and earlier but only if a version incompatibility issue
595  was present. For example, if you were mixing
596  <em>slf4j-api-1.5.6.jar</em> with <em>slf4j-simple-1.4.2.jar</em>,
597  which are mutually incompatible. Please note that this bug affects
598  only SLF4J versions 1.5.5 and 1.5.6 <em>and</em> only in the
599  presence of incompatible versions of slf4j-api and its binding.
600  </p>
601
602  <p>SLF4J will now emit a warning if more than one binding is present
603  on the class path. This enhancement was proposed in <a
604  href="http://bugzilla.slf4j.org/show_bug.cgi?id=132">bug 132</a>
605  contributed by by Robert Elliot.
606  </p>
607
608  <p>The Log interface implementations in the jcl-over-slf4j module
609  will now correctly cope with serialization. This fixes <a
610  href="http://bugzilla.slf4j.org/show_bug.cgi?id=79">bug 79</a>
611  reported by Mathias Bogaert. Many thanks to Eric Vargo for precisely
612  identifying the problem and supplying the corresponding patch.</p>
613
614  <p>The log4j-over-slf4j module will now correctly
615  interact with logging frameworks supporting location information
616  such as java.util.logging and logback.  This fixes <a
617  href="http://bugzilla.slf4j.org/show_bug.cgi?id=131">bug 131</a>
618  reported by Marc Zampetti.
619  </p>
620
621  <p><code>SLF4JBridgeHandler</code> will no longer ignore log records
622  with an empty message. This fixes <a
623  href="http://bugzilla.slf4j.org/show_bug.cgi?id=108">bug 108</a>
624  reported by Pepijn Van Eeckhoudt and independently by Dan Lewis.
625  </p>
626
627  <p>In case the <code>toString()</code> method of a parameter throws
628  an exception, <code>MessageFormatter</code> will now print an error
629  message, instead of letting the exception bubble higher up as
630  previously. This fixes <a
631  href="http://bugzilla.slf4j.org/show_bug.cgi?id=112">bug 112</a>
632  submitted by Joern Huxhorn.
633  </p>
634
635  <hr noshade="noshade" size="1"/>
636
637  <h3>November 21st, 2008 - Release of SLF4J 1.5.6</h3>
638
639  <p>SLF4J version 1.5.6 consists of bug fixes. Users are encouraged
640  to upgrade to SLF4J version 1.5.6. The upgrade should pose no
641  problems. Nevertheless, you might still want to refer to the SLF4J
642  <a href="compatibility.html">compatibility report</a>.
643  </p>
644
645  <p>Fixed long standing <a
646  href="http://jira.qos.ch/browse/LBCLASSIC-87">LBCLASSIC-87</a> and
647  its younger sibling <a
648  href="http://bugzilla.slf4j.org/show_bug.cgi?id=113">bug
649  113</a>. With each call to getLogger() method,
650  <code>LoggerContext</code> will now retrieve the ILoggerFactory
651  afresh from <code>StaticLoggerBinder</code>. This change enables
652  context selectors of native implementations, e.g logback, to work
653  correctly.
654  </p>
655
656  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=114">bug
657  114</a> reported by Jason Arndt. Corrected the way
658  <code>XLogger</code> (in slf4j-ext) passes its fully qualified class
659  name so that the underlying logging system can correctly compute
660  location information.
661  </p>
662
663
664  <p>The <code>install()</code> method of
665  <code>SLF4JBridgeHandler</code> will no longer reset the entire
666  j.u.l. environment but solely add a <code>SLF4JBridgeHandler</code>
667  instance to jul's root logger. By the same token, the
668  <code>uninstall()</code> method will remove previously added
669  <code>SLF4JBridgeHandler</code> instances without making any other
670  modifications to the j.u.l. configuration.
671  </p>
672
673  <p>Added <code>MDCStrLookup</code> to slf4j-ext. This class can be
674  used with Apache Commons Lang's <code>StrSubstitutor</code> class to
675  inject values in the SLF4J MDC into strings. Information on
676  StrSubstitutor can be found at <a
677  href="http://commons.apache.org/lang/api-release/org/apache/commons/lang/text/StrSubstitutor.html">StrSubstitutor
678  javadoc</a>.
679  </p>
680
681  <hr noshade="noshade" size="1"/>
682
683  <h3>October 17th, 2008 - Release of SLF4J 1.5.5</h3>
684
685  <p>The version check mechanism introduced in SLF4J 1.5.4 was
686  inconsistent with the large size of SLF4J's installed user base.  We
687  cannot expect external SLF4J implementations to align their release
688  schedule with that of SLF4J. Consequently, this SLF4J version,
689  namely 1.5.5, retains versions checks but as an elective
690  process. For further details see the <a
691  href="faq.html#version_checks">relevant entry</a> in the FAQ.
692  </p>
693
694  <p>You are highly encouraged to upgrade to SLF4J version 1.5.5. The
695  upgrade should pose no problems. Nevertheless, you might still want
696  to refer to the SLF4J <a href="compatibility.html">compatibility
697  report</a>.
698  </p>
699
700  <h3>October 16th, 2008 - Release of SLF4J 1.5.4</h3>
701
702  <p>This version corrects critical bugs.
703  </p>
704
705  <p>Fixed <a
706  href="http://bugzilla.slf4j.org/show_bug.cgi?id=106">critical bug
707  106</a>. In previous versions of SLF4J, if during the initial
708  binding phase, the underlying logging system's default configuration
709  created or invoked loggers, a <code>NullPointerException</code>
710  would be thrown. Refer to the <a
711  href="codes.html#substituteLogger">in error codes</a> document for a
712  fuller explanation.</p>
713
714  <p>At initialization time, LoggerFactory will now check that the
715  version of the slf4j-binding matches that of slf4j-api. If there is
716  a mismatch a warning will be issued on the console. This should help
717  users identify SLF4J related problems more quickly.</p>
718
719  <p>Improvements in documentation as well as fix for <a
720  href="http://bugzilla.slf4j.org/show_bug.cgi?id=102">packaging
721  problems</a> related to <em>slf4j-ext</em> module.
722  </p>
723
724  <p>SLF4JBridgeHandler (part of jul-to-slf4j) now accounts for
725  loggers with resourceBundle as well parameters. This feature
726  requested by Darryl Smith in <a
727  href="http://bugzilla.slf4j.org/show_bug.cgi?id=98">bug 98</a> and
728  by Jarek Gawor in <a
729  href="http://bugzilla.slf4j.org/show_bug.cgi?id=103">bug
730  103</a>.</p>
731
732  <p>We now say that markers contain <em>references</em> to other
733  markers. We no longer talk about child markers. The javadocs of the
734  <code>Marker</code> interface have been updated to reflect this
735  change. Moreover, the <code>hasChildren()</code> method in the
736  Marker interface has been deprecated and a new method called
737  <code>hasReferences()</code> was added.
738  </p>
739
740  <hr noshade="noshade" size="1"/>
741
742  <h3>September 12th, 2008 - Release of SLF4J 1.5.3</h3>
743
744  <p>See also the <a href="compatibility.html#1_5_3">compatibility
745  report for this version</a>.
746  </p>
747
748  <p>Added a new module called slf4j-ext for slf4j-extensions. See <a
749  href="extensions.html">its documentation</a> for further
750  details.</p>
751
752  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=71">bug
753  71</a> which was re-opened by Manfred Geiler. SLF4J loggers now
754  survive serialization. By survive serialization, we mean
755  that the deserialized logger instance are fully functional. </p>
756
757  <p>The fix for <a
758  href="http://bugzilla.slf4j.org/show_bug.cgi?id=68">bug 68</a> as
759  implemented in version 1.5.1 was incomplete. Michael Furman supplied
760  a more complete fix which was incorporated in this release.</p>
761
762  <p>When slf4j bridges, e.g. jcl-over-slf4j or log4j-over-slf4j, were
763  used in conjunction with JUL as the underlying logging system,
764  JDK14LoggerAdapter created a LogRecord even for disabled log
765  statements. This performance issue was reported in <a
766  href="http://bugzilla.slf4j.org/show_bug.cgi?id=90">bug 90</a> by
767  Matthew Mastracci.
768  </p>
769
770  <p>Added support for array values, including multi-dimensional
771  arrays, as parameters. For example,</p>
772  <p class="source">log.debug("{} {}", "A", new int[] {1, 2}});</p>
773  <p>will print as "A [1, 2]" instead of "A [I@6ca1c" as
774  previously. This enhancement was proposed by "lizongbo".
775  </p>
776
777  <p>Parameter substitution code has been simplified. SLF4J now only
778  cares about the "{}" formatting anchor, that is the '{' character
779  immediately followed by '}'. Previously, the '{' had meaning on its
780  own. As a result of this change, users no longer need to escape the
781  '{' unless it is immediately followed by '}'. Existing messages
782  which escaped standalone '{' character will be printed with a
783  preceding backslash. However, no data loss in the printed messages
784  will occur.
785  </p>
786
787  <p>Added missing <code>getInstance</code> methods to the
788  <code>Category</code> class in the log4j-over-slf4j module, fixing
789  <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=95">bug 95</a>
790  reported by Michael Rumpf.</p>
791
792  <hr noshade="noshade" size="1"/>
793
794  <h3>June 8th, 2008 - Release of SLF4J 1.5.2</h3>
795
796  <p>Improvements to SLF4J documentation as well as fix of <a
797  href="http://bugzilla.slf4j.org/show_bug.cgi?id=88">packaging
798  problems</a> related to <em>jul-to-slf4j.jar</em> and
799  <em>jcl104-over-slf4j.jar</em>.
800  </p>
801
802  <h3>June 5th, 2008 - Release of SLF4J 1.5.1</h3>
803
804  <p>See also the <a href="compatibility.html#1_5_1">compatibility
805  report for this version</a>.</p>
806
807  <p>In order to support JCL version 1.1.1, the
808  <em>jcl<b>104</b>-over-slf4j</em> module was renamed as
809  <em>jcl-over-slf4j</em>. SLF4J will no longer ship with
810  <em>jcl104-over-slf4j.jar</em> but with <em>jcl-over-slf4j.jar</em>.
811  The related work responds to enhancement request discussed in <a
812  href="http://bugzilla.slf4j.org/show_bug.cgi?id=85">bug 85</a> as
813  reported by Niklas Gustavsson.
814  </p>
815
816  <p>The <em>slf4j-jcl</em> binding now depends on commons-logging
817  version 1.1.1 instead of the older 1.0.4</p>
818
819
820  <p>Added a java.util.logging to SLF4J bridge as requested in <a
821  href="http://bugzilla.slf4j.org/show_bug.cgi?id=38">bug 38</a> by
822  Christian Stein, David Smiley, Johan Ferner, Joern Huxhorn and
823  others.
824  </p>
825
826  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=68">bug
827  68</a> reported by Su Chuan and David Rauschenbach. SLF4J requires
828  log4j 1.2.12 or later. However, if an older version of log4j is
829  present (lacking the TRACE level), in order to avoid
830  NoSuchMethodError exceptions, the SLF4J's
831  <code>Log4jLoggerAdapter</code> will map the TRACE level as DEBUG.
832  </p>
833
834
835  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=78">bug
836  78</a> reported by Venu Thachappilly. If the argument array passed
837  to a Logger printing method (debug, info, etc.) was null, a
838  <code>NullPointerException</code> was thrown. With the correction,
839  the messagePattern is returned as is, without parameter
840  substitution.
841  </p>
842
843
844  <p>Added the <code>getCopyOfContextMap</code> and
845  <code>setContextMap</code> methods to the <code>MDCAdapter</code>
846  and <code>org.sf4j.MDC</code> classes. This was requested in <a
847  href="http://bugzilla.slf4j.org/show_bug.cgi?id=84">bug 84</a> by
848  Anton Tagunov.
849  </p>
850
851  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=74">bug
852  74</a>, an endless recursion problem in Marker.contains method,
853  reported by Michael Newcomb. Also added he
854  <code>getDetachedMarker</code> method to <code>IMarkerFactor</code>
855  and <code>MarkerFactory</code> classes which was indirectly
856  requested in bug 74.
857  </p>
858
859  <p>Added the methods <code>getLevel()</code> and
860  <code>getEffectiveLevel()</code> to the <code>Category</code> class
861  in log4j-over-slf4j. This addition was requested in <a
862  href="http://bugzilla.slf4j.org/show_bug.cgi?id=74">bug 74</a> by
863  Michael Newcomb.
864  </p>
865
866  <p>The <a href="migrator.html">SLF4J Migrator</a>
867  tool has been improved to support migration from JUL to SLF4J.
868  </p>
869
870  <p>In <code>MarkerIgnoringBase</code> class, corrected mapping of
871  trace methods with markers to their equivalents without marker
872  data. Previously, the mapping was trace to debug. The incorrect
873  mapping affected only calls to the trace method with
874  markers. Interestingly enough, this bug was picked up by new unit
875  tests and has not been reported as a bug by our users.
876  </p>
877
878
879  <h3>February 26th, 2008 - Release of SLF4J 1.5.0</h3>
880
881
882  <p>A tool called <a href="migrator.html">SLF4J Migrator</a> now
883  ships with SLF4J. It can help you migrate your project using JCL or
884  log4j to use SLF4J instead.
885  </p>
886
887  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=61">bug
888  61</a> reported by Christopher Sahnwaldt. It is now possible to
889  place a backslash in front of a formatting anchor, by escaping the
890  backslash. For example, the call to
891  <code>MessageFormatter.format("C:\\\\{}", "foo")</code> will now
892  correctly return "C:\\foo". The backslash character needs to be
893  escaped in Java, which leads to four backslashes.
894  </p>
895
896
897  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=63">bug
898  63</a> reported by Maarten Bosteels. SLF4J now supports MDC for
899  <code>java.util.logging</code> package.
900  </p>
901
902  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=64">bug
903  64</a> reported by Michal Bernhard. The log4j binding will now alert
904  the user if she uses SLF4J with a version of log4j earlier than 1.2.12.
905  </p>
906
907  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=65">bug
908  65</a> reported by Ben Gidley. Superfluous
909  &lt;version>$&#x7B;parent.version}&lt;/version> lines have been
910  removed from pom.xml files. These lines reportedly confuse certain
911  Maven repositories.
912  </p>
913
914  <p>In the <code>org.apache.log4j.Category</code> class, as
915  implemented in the log4j-over-slf4j module, calls to the printing
916  trace() are now correctly mapped to SLF4J's trace() printing method
917  (instead of debug()). Superfluous printing methods with the
918  signature <code>xxxx(Object, Object)</code> and <code>xxxx(String,
919  Object, Object)</code> have been removed.
920  </p>
921
922  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=67">bug
923  67</a> reported by Chris Custine.  The manifest file for
924  jcl104-over-slf4j now correctly declares version 1.0.4 for the
925  exported JCL packages.
926  </p>
927
928
929  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=69">bug
930  69</a> reported by Joern Huxhorn, who graciously supplied the fix as
931  well as a test case. The <code>add</code> method in
932  <code>BasicMarker</code> class now correctly prevents multiple
933  addition of the same child. Moreover, the <code>remove</code> method
934  now correctly removes the specified child marker.
935  </p>
936
937  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=41">bug
938  41</a> reported by Sebastian Davids. The manifest files of various
939  projects now mention J2SE-1.3 as the required execution
940  environment.
941  </p>
942
943  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=71">bug
944  71</a> reported by Manfred Geiler. The SLF4JLog and
945  SLF4JLocationAwareLog classes are now serializable solving
946  serialization problems encountered with certain libraries which
947  attempt to serialize JCL log instances.
948  </p>
949
950  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=73">bug
951  73</a> reported by Oleg Smirsky. A "Fragment-Host: slf4j.api" line
952  has been added to every MANIFEST.MF file exporting
953  <code>org.slf4j.impl</code>.
954  </p>
955
956
957  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=72">bug
958  72</a> reported by Ian Carr. Performance issues with slf4j-jdk14 for
959  disabled log statements have now been corrected.
960  </p>
961
962  <hr noshade="noshade" size="1"/>
963
964  <h3>August 20th, 2007 - Release of SLF4J 1.4.3</h3>
965
966  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=60">bug
967  60</a> as reported by Costin Leau. OSGI manifest entries now declare
968  the correct SLF4J version.
969  </p>
970
971  <p>Clarified the behavior of the various methods methods in the MDC
972  class with respect to "null" parameters. This was requested in <a
973  href="http://bugzilla.slf4j.org/show_bug.cgi?id=58">bug 58</a> by
974  Sebastian Davids.
975  </p>
976
977  <p>Removed the slf4j-archetype module because nobody seems to have a
978  use for it.</p>
979
980  <h3>July 12th, 2007 - Release of SLF4J 1.4.2</h3>
981
982  <p>The <a href="log4j-over-slf4j.html">log4j-over-slf4j</a> module
983  has been moved back into SLF4J. Originally, this module was part of
984  SLF4J and was moved into logback due to the lack of MDC support in
985  SLF4J. With version 1.4.2 and the addition of MDC support in SLF4J
986  1.4.1, log4j-over-slf4j returns to its original home. Note that the
987  previous name of the module was <a
988  href="http://logback.qos.ch/bridge.html">log4j-bridge</a>.
989  </p>
990
991  <p>Addition of the <code>getMDCAdapter</code> method to
992  org.slf4j.MDC class. This allows access to the actual MDC
993  implementation which can on occasion come in very handy.
994  </p>
995
996  <hr noshade="noshade" size="1"/>
997
998
999
1000  <h3>July 4th, 2007 - Release of SLF4J 1.4.1</h3>
1001
1002
1003  <p>SLF4J now supports <a href="manual.html#mdc">Mapped Diagnostic
1004  Contexts</a> (MDC) as requested by Andy Gerweck and Steve Ebersole
1005  in <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=49">bug
1006  49</a>.
1007  </p>
1008
1009  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=53">bug
1010  53</a> as reported by Heinrich Nirschl.  The public method
1011  <code>trace(String)</code> in the <code>Log4jLoggerAdapter</code>
1012  class incorrectly called the underlying log4j logger with level DEBUG
1013  instead of TRACE.
1014  </p>
1015
1016  <p>Fixed various documentation related errors kindly reported by
1017  Mark Vedder.
1018  </p>
1019
1020
1021  <hr noshade="noshade" size="1"/>
1022
1023
1024  <h3>May 16th, 2007 - Release of SLF4J 1.4.0</h3>
1025
1026
1027  <p>In response to many user requests over time, the TRACE level has
1028  been added to <a
1029  href="api/org/slf4j/Logger.html">org.slf4j.Logger</a>
1030  interface. Please also see the <a href="faq.html#trace">FAQ entry
1031  discussing</a> the TRACE level.
1032  </p>
1033
1034
1035  <p>Fixed <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=47">bug
1036  47</a> as reported by Terry Todd.  In previous a SLF4J release the
1037  <code>org.apache.commons.logging.impl.SLF4FLogFactory</code> class
1038  was renamed as <code>SLF4JLogFactory</code>. The
1039  <em>META-INF/services/org.apache.commons.logging.LogFactory</em>
1040  resource file had not reflected this change. It does now.
1041  </p>
1042
1043
1044  <p>Eric Yung <a
1045  href="http://www.slf4j.org/pipermail/user/2007-April/000327.html">reported</a>
1046  that Apache commons-configuration access certain commons-logging
1047  classes, namely <code>org.apache.commons.logging.impl.NoOpLog</code>
1048  and SimpleLog, directly. Following Eric's suggestion,
1049  jcl104-over-slf4j now includes the aforementioned classes.
1050  </p>
1051
1052
1053  <hr noshade="noshade" size="1"/>
1054
1055  <h3>April 15th, 2007 - Release of SLF4J 1.3.1</h3>
1056
1057
1058  <p>In response to a <a
1059  href="http://bugzilla.slf4j.org/show_bug.cgi?id=39">enhancement
1060  request</a> made by Michael Newcomb, a marker can now be detached
1061  from the internal list of the <code>MarkerFactory</code> that
1062  generated it.
1063  </p>
1064
1065  <p>Fixed a silly but nonetheless annoying bug where log request of
1066  level ERROR made through jcl104-over-slf4j would log twice. This bug
1067  was <a
1068  href="http://www.slf4j.org/pipermail/user/2007-April/000323.html">reported</a>
1069  and precisely described by Andrew Cooke.
1070  </p>
1071
1072
1073  <hr noshade="noshade" size="1"/>
1074
1075  <h3>February 25th, 2007 - Release of SLF4J 1.3.0</h3>
1076
1077  <p>This release consists of rearrangement of classes among
1078  projects. More specifically, the
1079  <code>org.slf4j.LoggerFactory</code> class is now packaged within
1080  the <em>slf4j-api.jar</em> file instead of the various slf4j
1081  bindings. <b>It follows that client code needs to depend on only
1082  slf4j-api in order to compile, while the various slf4j bindings are
1083  only needed as runtime dependencies.</b> See also the <a
1084  href="faq.html#maven2">Maven2-related FAQ entry</a>. Given the
1085  practical significance of this change, we highly recommend that
1086  library-authors upgrade to version 1.3 at their earliest
1087  convenience.
1088  </p>
1089
1090  <p><a href="http://bugzilla.slf4j.org/show_bug.cgi?id=23">Bug number
1091  23</a> has been fixed, at the cost of minor and backward compatible
1092  changes. In other words, jcl104-over-slf4j now preserves caller
1093  location information.
1094  </p>
1095
1096  <p>It is now possible to obtain the root logger of the underlying
1097  logging implementation by requesting a logger named
1098  &quot;ROOT&quot;. This feature was requested by Sebastien Davids
1099  in <a href="http://bugzilla.slf4j.org/show_bug.cgi?id=35">bug
1100  report 35</a>. </p>
1101
1102  <p>For  an   exact  list   of  changes  please   refer  to   the  <a
1103  href="changes/changes-1.3.txt">1.3.0  compatibility  report</a> file
1104  as generated by clirr.</p>
1105
1106
1107  <hr noshade="noshade" size="1"/>
1108
1109  <h3>January 24th, 2007 - Release of SLF4J 1.2</h3>
1110  <p>This release includes several modifications to make SLF4J
1111  an <a href="http://www.osgi.org/">OSGi</a>-friendly framework.
1112  The modules' MANIFEST.MF files now include
1113  OSGi metadata. Regarding these improvements, and OSGi in general, the
1114  SLF4J project is happy to welcome John E. Conlon  as a new committer.
1115  </p>
1116
1117  <p>Marker objects are now Serializable.
1118  </p>
1119
1120  <hr noshade="noshade" size="1"/>
1121
1122  <h3>December 21st, 2006 - Release of SLF4J 1.1.0 (final)</h3>
1123
1124  <p>This release consists of minor bug fixes and documentation
1125  changes. More importantly, the log4j-over-slf4j module has been
1126  moved to the logback project, under the name <a
1127  href="http://logback.qos.ch/bridge.html">log4j-bridge</a>.
1128  </p>
1129
1130   <p>Added the file "org.apache.commons.logging.LogFactory" under
1131   META-INF/services directory which went missing in the 1.1.0 series
1132   of SLF4J. This fixes a compatibility problem with Apache Axis which
1133   uses its own discovery mechanism, namely, commons-discovery version
1134   0.2. The problem was reported in bug <a
1135   href="http://bugzilla.slf4j.org/show_bug.cgi?id=33">report 33</a>
1136   by David Varnes.
1137  </p>
1138
1139  <p>The file jcl104-over-slf4j.jar had various entries missing in its
1140  MANIFEST.MF file, as reported by Boris Unkel in <a
1141  href="http://bugzilla.slf4j.org/show_bug.cgi?id=30">bug number
1142  30</a>.
1143  </p>
1144
1145  <hr noshade="noshade" size="1"/>
1146
1147  <h3>November 16th, 2006 - Release of SLF4J 1.1.0-RC1</h3>
1148
1149  <p>This release consists of packaging related bug fix in addition to
1150  minor documentation changes.
1151  </p>
1152
1153  <p>Contrary to RC0, RC1 no longer uses SNAPSHOT versions for the
1154  slf4j-parent pom. The solution to <a
1155  href="http://ceki.blogspot.com/2006/11/solution-to-maven2-version-number.html">Maven
1156  version problem</a> does not work for public projects such as SLF4J
1157  because SNAPSHOTs are not allowed on ibiblio.
1158  </p>
1159
1160
1161  <hr noshade="noshade" size="1"/>
1162
1163  <h3>November 4th, 2006 - Release of SLF4J 1.1.0-RC0</h3>
1164
1165  <p>This release consists of bug fixes. Moreover, since the major
1166  packaging related changes in 1.1.0-beta0 seem to work well, this
1167  release is marked as RC0.</p>
1168
1169  <p>Fixed the JDK 1.5 dependency for the SLF4J build, as reported by
1170  Boris Unkel in <a
1171  href="http://bugzilla.slf4j.org/show_bug.cgi?id=28">bug number
1172  28</a>. SLF4J now explicitly declares a dependency on JDK 1.4 in its
1173  pom.xml file.
1174  </p>
1175
1176  <p>Fixed an incorrect reference to the logback project in slf4j-api
1177  pom file. This bug was reported by Boris Unkel in <a
1178  href="http://bugzilla.slf4j.org/show_bug.cgi?id=29">bug number
1179  29</a>.
1180  </p>
1181
1182  <p>Fixed a synchronization problem in factories of almost all SLF4J
1183  bindings. This bug was reported independently by Howard M. Lewis Ship
1184  and Boris Unkel in bug reports <a
1185  href="http://bugzilla.slf4j.org/show_bug.cgi?id=26">26</a> and
1186  respectively <a
1187  href="http://bugzilla.slf4j.org/show_bug.cgi?id=26">27</a>.
1188  </p>
1189
1190  <hr noshade="noshade" size="1"/>
1191
1192  <h3>September 7th, 2006 - Release of SLF4J 1.1.0-beta0</h3>
1193
1194  <p>Release 1.1.0-beta0 is a relatively important release with a
1195  refactoring of the way class files are organized in jar files. In
1196  previous releases, each binding was self-contained in a single jar
1197  file. In this release, each and every binding depends on
1198  <em>slf4j-api.jar</em> which contains the bulk of the classes
1199  required to use SLF4J, except for one or two adapter classes.  Only
1200  the adapter classes are now shipped with each specific binding jar
1201  as appropriate for the underlying logging system..
1202  </p>
1203
1204  <p>This release is built using Maven instead of Ant. As for the java
1205  code, it has not been changed.</p>
1206
1207  <hr noshade="noshade" size="1"/>
1208
1209  <h3>June 8th, 2006 - Release of SLF4J 1.0.2</h3>
1210
1211  <p>Release 1.0.2 is a maintenance release containing bug fixes
1212  only.</p>
1213
1214  <ul>
1215
1216    <li>Fixed <a
1217    href="http://bugzilla.slf4j.org/show_bug.cgi?id=22">bug number
1218    22</a> reported by Bjorn Danielsson. This version of the SLF4J API
1219    will no longer systematically throw an exception when the
1220    <code>o.a.c.l.impl.SLF4FLogFactory#release()</code> method is
1221    invoked. Instead, the <code>release()</code> method will issue a
1222    <a href="http://www.slf4j.org/codes.html">warning</a>.
1223
1224    </li>
1225
1226  </ul>
1227
1228  <hr noshade="noshade" size="1"/>
1229
1230  <h3>May 1st, 2006 - Release of SLF4J 1.0.1</h3>
1231
1232  <p>Release 1.0.1 is a maintenance release containing bug fixes
1233  only.</p>
1234
1235  <ul>
1236
1237    <li>Fixed <a
1238    href="http://bugzilla.slf4j.org/show_bug.cgi?id=20">bug number
1239    20</a> reported by Steve Bate. <code>JDK14LoggerAdapter</code>
1240    will now correctly relay the logger name to the underlying JDK 14
1241    logging system.
1242    </li>
1243
1244    <li>Added the file "org.apache.commons.logging.LogFactory" under
1245    META-INF/services directory in the jcl104-over-slf4j jar
1246    file. This fixes a compatibility problem with Apache Axis which
1247    uses its own discovery mechanism, namely, commons-discovery
1248    version 0.2. The bug was reported by Dave Wallace.
1249    </li>
1250
1251  </ul>
1252
1253
1254  <hr noshade="noshade" size="1"/>
1255
1256  <h3>March 8th, 2006 - Release of SLF4J 1.0</h3>
1257
1258  <p>This is release labeled as 1.0 (final) contains few relatively
1259  minor changes:
1260  </p>
1261
1262  <ul>
1263    <li>As <a
1264    href="http://marc.theaimsgroup.com/?t=114063163800004">discussed</a>
1265    on the slf4j user list, <code>SimpleLogger</code> now directs its
1266    output to stderr instead of stdout.
1267    </li>
1268
1269    <li>Modified <code>JDK14LoggerAdapter</code> so that caller
1270    information is now correctly printed, as reported in <a
1271    href="http://bugzilla.slf4j.org/show_bug.cgi?id=13">bug 13</a> by
1272    Peter Royal.
1273    </li>
1274
1275    <li>Minor additions to the Marker interface.</li>
1276
1277  </ul>
1278
1279  <hr noshade="noshade" size="1"/>
1280
1281  <h3>February 4th, 2006 - Release of SLF4J 1.0-RC6 and NLOG4J
1282  1.2.22</h3>
1283
1284  <p>The <code>MarkingLogger</code> interface has been removed and its
1285  contents merged into <code>org.slf4j.Logger</code>. This change
1286  should not adversely affect end-users. However, SLF4J bindings need
1287  to be updated. This has been done for all the bindings shipped with
1288  SLF4J distribution as well as NLOG4J. As for x4juli, the update is
1289  planned for its next release.
1290  </p>
1291
1292  <p>The merge between the <code>MarkingLogger</code> and
1293  <code>Logger</code> interfaces has been motivated by the need to
1294  allow end-users to easily switch between logging systems that
1295  support markers and those that do not.
1296  </p>
1297
1298  <p>Added a default instance to SimpleLoggerFactory to serve as a
1299  last resort fallback mechanism. This instance is designed to be used
1300  by a very specific group of users, namely for those developing
1301  logging systems (e.g. log4j or LOGBack). It is not intended for
1302  end-users of the SLF4J API.
1303  </p>
1304
1305 <hr noshade="noshade" size="1"/>
1306
1307  <h3>January 9th, 2006 - Release of SLF4J 1.0-RC5 and NLOG4J
1308  1.2.21</h3>
1309
1310  <p>A maintenance release correcting bugs <a
1311  href="http://bugzilla.slf4j.org/show_bug.cgi?id=11">#11</a> and <a
1312  href="http://bugzilla.slf4j.org/show_bug.cgi?id=12">#12</a> and in
1313  general improved resilience to null input parameters across
1314  implementations. Many thanks to Boris Unckel and Kenneth for
1315  reporting the null input issue.
1316  </p>
1317
1318 <hr noshade="noshade" size="1"/>
1319
1320  <h3>December 27th, 2005 - Release of SLF4J 1.0-RC4 and NLOG4J
1321  1.2.20</h3>
1322
1323
1324  <p>The printing methods in <code>org.slf4j.Logger</code> interface
1325  now support passing 3 or more parameters in an <code>Object</code>
1326  array. This was a frequently requested feature missing in previous
1327  versions of SLF4J.
1328  </p>
1329
1330  <p>NLOG4J 1.2.20 reflects the addition of new methods in the
1331  <code>org.slf4j.Logger</code> interface.</p>
1332
1333  <hr noshade="noshade" size="1"/>
1334
1335  <h3>December 8th, 2005 - Release of SLF4J 1.0-RC3</h3>
1336
1337  <p>Maintenance release fixing reported bugs <a
1338  href="http://bugzilla.slf4j.org/show_bug.cgi?id=6">#6</a> and <a
1339  href="http://bugzilla.slf4j.org/show_bug.cgi?id=7">#7</a>.
1340  </p>
1341
1342
1343  <h3>November 28th, 2005 - Release of SLF4J 1.0-RC2</h3>
1344
1345  <p>In response to a request by Greg Wilkins, this release adds the
1346  jar file <em>slf4j-jcl.jar</em>, an SLF4J binding for JCL. Please
1347  read the <a href="manual.html#gradual">gradual migration section</a>
1348  in the manual for more details.
1349  </p>
1350
1351  <hr noshade="noshade" size="1"/>
1352
1353  <h3>November 21st, 2005 - Release of SLF4J 1.0-RC1</h3>
1354
1355  <p>A maintenance release correcting bugs <a
1356  href="http://bugzilla.slf4j.org/show_bug.cgi?id=4">#4</a> and <a
1357  href="http://bugzilla.slf4j.org/show_bug.cgi?id=5">#5</a>. Many
1358  thanks to Christian Beil for accurately reporting bug #4.
1359  </p>
1360
1361  <p>There has been also an effort to minimize the file sizes of the
1362  various jar files produced by SLF4J, resulting in jar files
1363  approximately 40% smaller than in version 1.0beta9.
1364  </p>
1365
1366  <p>Given that the SLF4J API is now deemed stable, this release is
1367  marked as RC1, that is release candidate number 1.
1368  </p>
1369
1370
1371  <hr noshade="noshade" size="1"/>
1372
1373  <h3>October 19th, 2005 - Release of SLF4J 1.0-beta9</h3>
1374
1375  <p>The SLF4J distribution now includes two distinct bindings
1376  <em>slf4j-log4j12.jar</em> and <em>slf4j-log4j13.jar</em> in order
1377  to differentiate between log4j version 1.2 and version 1.3. This
1378  distinction is absolutely necessary because log4j 1.2 and 1.3 are
1379  not run-time compatible, although they are mostly compile-time
1380  compatible.
1381  </p>
1382
1383  <hr noshade="noshade" size="1"/>
1384
1385  <h3>October 19th, 2005 - Release of SLF4J 1.0-beta8 and NLOG4J 1.2.18</h3>
1386
1387
1388  <p>Added a new SLF4J binding, <em>slf4j-log4j.jar</em>, intended to
1389  be used in conjunction with vanilla <em>log4j.jar</em>, as
1390  distributed by the <a href="http://logging.apache.org">Apache
1391  Logging Services</a> project. The slf4j-log4j binding is quite
1392  similar in structure to the JDK 1.4 binding that existed
1393  previously.
1394  </p>
1395
1396  <p>The slf4j-log4j binding addresses compatibility problems which
1397  arose when copies of both <em>log4j.jar</em> and <em>nlog4j.jar</em>
1398  lay on the class path, in particular when it was undesirable or
1399  impossible to remove the preexisting <em>log4j.jar</em> file.
1400  </p>
1401
1402  <p>Methods in the <code>org.slf4j.Logger</code> interface related to
1403  markers were moved to a separate super interface called <a
1404  href="api/org/slf4j/MarkingLogger.html">
1405  <code>org.slf4j.MarkingLogger</code></a>. This refactoring reduces
1406  the weight of the <a href="api/org/slf4j/Logger.html">
1407  <code>Logger</code></a> interface.
1408  </p>
1409
1410  <hr noshade="noshade" size="1"/>
1411
1412  <h3>August 28th, 2005 - Release of SLF4J 1.0-beta7 and NLOG4J 1.2.17</h3>
1413
1414  <p>Spurred by <a
1415  href="http://bugzilla.slf4j.org/show_bug.cgi?id=3">bug report
1416  #3</a>, SLF4J binding code has been refactored and
1417  simplified. Logging systems implementing SLF4J interfaces have to
1418  have less work in order to bind with SLF4J. Moreover, these changes
1419  have no incidence on the published interface of SLF4J.
1420  </p>
1421
1422
1423  <hr noshade="noshade" size="1"/>
1424
1425  <h3>August 26th, 2005 - Release of SLF4J 1.0-beta6</h3>
1426
1427  <p>To ease migration to SLF4J from JCL, this release includes a jar
1428  file called <em>jcl-over-slf4j-1.0.4.jar</em>. This jar file can be
1429  used as drop-in replacement for JCL version 1.0.4. It implements the
1430  public API of JCL using SLF4J underneath.
1431  </p>
1432
1433  <p>Thus, you can immediately benefit from the advantages of SLF4J
1434  without waiting for all the libraries you depend on to migrate to
1435  SLF4J first.</p>
1436
1437  <hr noshade="noshade" size="1"/>
1438
1439  <h3>August 16th, 2005 - Release of NLOG4J 1.2.16</h3>
1440
1441   <p>This release adds solves a compatibility problem between log4j
1442  and nlog4j.  Previous to this release, code compiled with log4j
1443  would not run correctly with nlog4j.
1444  </p>
1445
1446  <p>With the fixes introduced in NLOG4J 1.2.16, code compiled with
1447  log4j 1.2.x will run without problems when deployed using NLOG4j.
1448  </p>
1449
1450  <p>However, the inverse is not true. Code compiled with nlog4j can
1451  only be deployed using nlog4j.
1452  </p>
1453
1454  <hr noshade="noshade" size="1"/>
1455
1456  <h3>August 12th, 2005 - Release of SLF4J 1.0-beta5 and NLOG4J
1457  1.2.15</h3>
1458
1459  <p>This release adds support for the <a
1460  href="api/org/slf4j/Marker.html">Marker</a> interface. Thus, log
1461  statements can be decorated with Marker data allowing more
1462  expressive power in the processing of log statements.
1463  </p>
1464
1465  <p>For the sake of IoC frameworks, <code>Logger</code> instances can
1466  new be queried for their <a
1467  href="api/org/slf4j/Logger.html#getName()">name</a>.
1468  </p>
1469
1470  <p>With the addition of markers, sub-domains are no longer
1471  needed.</p>
1472
1473  <p>The <code>LoggerFactoryAdapter</code> has been simplified and
1474  renamed as <a
1475  href="api/org/slf4j/ILoggerFactory.html"><code>ILoggerFactory</code></a>.
1476  </p>
1477
1478  <hr noshade="noshade" size="1"/>
1479
1480  <h3>July 5th, 2005 - Release of NLOG4J 1.2.14</h3>
1481
1482  <p>This release fixes compatibility problems between NLOG4J and
1483  Jakarta Commons Logging.
1484  </p>
1485
1486  <hr noshade="noshade" size="1"/>
1487
1488  <h3>June 28th, 2005 - Release of SLF4J 1.0-beta4 and NLOG4J
1489  1.2.13</h3>
1490
1491  <p>Following discussions on the SLF4J developers list, the
1492  signatures of the printing methods in <a
1493  href="api/org/slf4j/Logger.html"><code>org.slf4j.Logger</code></a>
1494  interface have been modified to admit messages of type
1495  <code>String</code> instead of type <code>Object</code> as
1496  previously. The current set of printing methods is listed below.
1497  </p>
1498
1499  <pre class="source">
1500 void debug(String msg);
1501 void debug(String format, Object arg);
1502 void debug(String format, Object arg1, Object arg2);
1503 void debug(String msg, Throwable t);
1504
1505 void error(String msg);
1506 void error(String format, Object arg;)
1507 void error(String format, Object arg1, Object arg2);
1508 void error(String msg, Throwable t);
1509
1510 void info(String msg);
1511 void info(String format, Object arg);
1512 void info(String format, Object arg1, Object arg2);
1513 void info(String msg, Throwable t);
1514
1515 void warn(String msg);
1516 void warn(String format, Object arg);
1517 void warn(String format, Object arg1, Object arg2);
1518 void warn(String msg, Throwable t);  </pre>
1519
1520
1521  <p>NLOG4J release 1.2.13 reflects changes in the SLF4J API.
1522  </p>
1523
1524  <p>You can download SLF4J and NLOG4J, including full source code,
1525  class files and documentation on our <a
1526  href="download.html">download page</a>.
1527  </p>
1528
1529  <hr noshade="noshade" size="1"/>
1530
1531  <h3>May 17th, 2005 - SLF4J version 1.0-beta-3 released</h3>
1532
1533  <p>In response to user comments, the <code>org.slf4j.ULogger</code>
1534  interface has been renamed as <code>org.slf4j.Logger</code>.
1535  </p>
1536
1537
1538  <hr noshade="noshade" size="1"/>
1539
1540  <h3>May 17th, 2005 - NLOG4J version 1.2.12 released</h3>
1541
1542  <p>SLF4J.ORG is proud to release NLOG4J 1.2.12, a log4j-replacement
1543  with native SLF4J API support.  Except for users of LF5, chainsaw or
1544  <code>NTEvenAppender</code>, NLOG4J should be considered as a 100%
1545  compatible, drop-in replacement for log4j version 1.2.9.
1546  </p>
1547
1548  <p>This release reflects changes in the SLF4J API, i.e renaming of
1549  <code>org.slf4j.ULogger</code> interface as
1550  <code>org.slf4j.Logger</code>.
1551  </p>
1552
1553  <hr noshade="noshade" size="1"/>
1554
1555  <h3>May 17th, 2005 - SLF4J version 1.0-beta-3 released</h3>
1556
1557  <p>SLF4J.ORG is proud to release SLF4J 1.0-beta-3. In response to
1558  user comments, the <code>org.slf4j.ULogger</code> interface has been
1559  renamed as <code>org.slf4j.Logger</code>.
1560  </p>
1561
1562  <p>You can download SLF4J, including full source code, class files
1563  and documentation on our <a href="download.html">download page</a>.
1564  </p>
1565
1566  <hr noshade="noshade" size="1"/>
1567
1568  <h3>May 14th, 2005 - NLOG4J version 1.2.11 released</h3>
1569
1570  <p>SLF4J.ORG is proud to release NLOG4J 1.2.11, a log4j-replacement
1571  with native SLF4J API support.  Except for users of LF5, chainsaw or
1572  <code>NTEvenAppender</code>, NLOG4J should be considered as a 100%
1573  compatible, drop-in replacement for log4j version 1.2.9.
1574  </p>
1575
1576  <p>You can download NLOG4J version 1.2.11, including full source
1577  code, class files and documentation on our <a
1578  href="download.html">download page</a>.
1579  </p>
1580
1581  <hr noshade="noshade" size="1"/>
1582
1583  <h3>May 4th, 2005 - SLF4J version 1.0-beta-2 released</h3>
1584
1585  <p>SLF4J.ORG is proud to release SLF4J 1.0-beta-2. This release
1586  contains cosmetic or javadoc changes. For example, the project has a
1587  new logo.
1588  </p>
1589
1590  <p>You can download SLF4J version 1.0-beta2, including full source
1591  code, class files and documentation on our <a
1592  href="download.html">download page</a>.
1593  </p>
1594
1595
1596  <hr noshade="noshade" size="1"/>
1597
1598  <h3>1 May 2005 - not-log4j-1.2.10 released</h3>
1599
1600  <p>Subsequent to the recall of log4j 1.2.10, SLF4J.ORG releases
1601  non-log4j-1.2.10 for those interested in SLF4J support in log4j.
1602  </p>
1603
1604  <p>You can download not-log4j version 1.2.10, including full source
1605  code, class files and documentation on our <a
1606  href="download.html">download page</a>.
1607  </p>
1608
1609  <hr noshade="noshade" size="1"/>
1610
1611
1612  <h3>22 April 2005 - SLF4J project goes live</h3>
1613
1614  <p>The SLF4J project site, including SVN repositories go
1615  live. Users can download SLF4J version 1.0-beta1.
1616  </p>
1617
1618  <hr noshade="noshade" size="1"/>
1619
1620  <h3>15 April 2005 - start of work on SLF4J source code</h3>
1621
1622  <p>Start of work on the SLF4j source code.
1623  </p>
1624
1625  <hr noshade="noshade" size="1"/>
1626
1627  <h3>13 April 2005 - start of work on SLF4J project</h3>
1628
1629  <p>Launch of the SLF4J project. Work has begun on the web-site, svn
1630  repositories as well as the source code.
1631  </p>
1632
1633
1634  <script src="templates/footer.js" type="text/javascript"></script>
1635
1636</div>
1637</body>
1638</html>
1639