title: SLF4J: Bridge vs Migrator JARs
body: <p>SLF4J (1.7.5, but really any modern version) ships with several "over" (migrator) JARs:</p>
  
  <ul>
  <li><code>jcl-over-slf4j-1.7.5.jar</code></li>
  <li><code>log4j-over-slf4j-1.7.5.jar</code></li>
  </ul>
  
  <p>...as well as a "to" (bridge) JAR:</p>
  
  <ul>
  <li><code>jul-to-slf4j-1.7.5.jar</code></li>
  </ul>
  
  <p>According to <a href="http://www.slf4j.org/legacy.html" rel="nofollow">their docs</a>, a migrator:</p>
  
  <blockquote>
    <p>...ease[s] migration to SLF4J from [JCL/log4j]. This jar file is intended as a drop-in replacement for [JCL/log4j]. It implements the[ir] public API but using SLF4J underneath, hence the name "over" SLF4J.</p>
  </blockquote>
  
  <p>Whereas, the JUL bridge:</p>
  
  <blockquote>
    <p>routes all incoming jul records to the SLF4j API.</p>
  </blockquote>
  
  <ol>
  <li>Do I use <code>jcl-over-slf4j-1.7.5.jar</code> when I have code that logs using JCL, but I want it to use SLF4J? Or something else?</li>
  <li>When would I use <code>jul-to-slf4j-1.7.5.jar</code>? How is the word "to" here used differently than "over"?</li>
  <li>Why is there no "over" JAR for JUL? Why are there no "to" JARs for JCL and log4j?</li>
  </ol>