public static <T extends BaseLogger> T createLogger(Class<T> loggerClass, String projectCode, String name, String componentId) {
    try {
      T logger = loggerClass.newInstance();
      logger.projectCode = projectCode;
      logger.componentId = componentId;
      logger.delegateLogger = LoggerFactory.getLogger(name);

      return logger;

    } catch (InstantiationException e) {
      throw new RuntimeException("Unable to instantiate logger '"+loggerClass.getName()+"'", e);

    } catch (IllegalAccessException e) {
      throw new RuntimeException("Unable to instantiate logger '"+loggerClass.getName()+"'", e);

    }
  }
public static < T extends BaseLogger > T createLogger ( Class < T > loggerClass , String projectCode , String name , String componentId ) { try { T logger = loggerClass . newInstance ( ) ; logger . projectCode = projectCode ; logger . componentId = componentId ; logger . delegateLogger = LoggerFactory . getLogger ( name ) ; return logger ; } catch ( InstantiationException e ) { throw new RuntimeException ( "Unable to instantiate logger '" + loggerClass . getName ( ) + "'" , e ) ; } catch ( IllegalAccessException e ) { throw new RuntimeException ( "Unable to instantiate logger '" + loggerClass . getName ( ) + "'" , e ) ; } }
Creates a new instance of the {@link BaseLogger Logger}.

@param loggerClass the type of the logger
@param projectCode the unique code for a complete project.
@param name the name of the slf4j logger to use.
@param componentId the unique id of the component.