title: Why calling LoggerFactory.getLogger(...) every time is not recommended?
body: <p>I've read tons of posts and documents (on this site and elsewhere) pointing that the recommended pattern for SFL4J logging is:</p>
  
  <pre><code>public class MyClass {
      final static Logger logger = LoggerFactory.getLogger(MyClass.class);
  
      public void myMethod() {
          //do some stuff
          logger.debug("blah blah blah");
      }
  }
  </code></pre>
  
  <p>My boss prefers we just use a wrapper to intercept log calls and avoid boiler plate code for declaring the logger on every class:</p>
  
  <pre><code>public class MyLoggerWrapper {
      public static void debug(Class clazz, String msg){
          LoggerFactory.getLogger(clazz).debug(msg));
      }
  }
  </code></pre>
  
  <p>and simply using it like this:</p>
  
  <pre><code>public class MyClass {
  
      public void myMethod() {
          //do some stuff
          MyLoggerWrapper.debug(this.getClass(), "blah blah blah");
      }
  }
  </code></pre>
  
  <p>I presume instantiating a logger every time we log is somewhat expensive but I've been unable to find any document backing that assumption. Besides he says surely the framework (LogBack or Log4J we're still deciding) will "cache" the loggers and also that in any case the servers are running very much below their capacity so it is not an issue.</p>
  
  <p>Any help pointing out potential problems with this approach?</p>