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ø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ö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ö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 <version>${parent.version}</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 "ROOT". 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