code: public static JRLogger getLogger(final Class<?> clazz) {
  
          JRLogger logger = loggerMap.get(clazz.getName());
          if (logger == null) {
              JRLogger newInstance = null;
  
              // Get the logger instance according to slf4j configuration
              final org.slf4j.Logger innerLogger = LoggerFactory.getLogger(clazz);
  
              if ("ch.qos.logback.classic.Logger".equals(innerLogger.getClass().getName())) {
                  newInstance = new LogbackAdapter((ch.qos.logback.classic.Logger) innerLogger);
              } else {
  
                  newInstance = new Slf4jAdapter(innerLogger);
              }
  
              final JRLogger oldInstance = loggerMap.putIfAbsent(clazz.getName(), newInstance);
              logger = oldInstance == null ? newInstance : oldInstance;
          }
          return logger;
      }
docs: Return a logger named corresponding to the class passed as parameter, using the statically bound {@link ILoggerFactory} instance.
  
  @param clazz the returned logger will be named after clazz
  
  @return the logger adapter