code: function LoggerConfiguration(logger) {
    /**
     * Override default logger instance with the provided logger
     * @public
     * @param {Object|Function} loggerOrFactoryFunction - the logger instance or factory function
     */
    function useLogger(loggerOrFactoryFunction) {
      cutil.assertObjectOrFunction(loggerOrFactoryFunction, 'loggerOrFactoryFunction');
  
      if (typeof(loggerOrFactoryFunction) === 'function') {
        logger = loggerOrFactoryFunction();
      }
      else {
        logger = loggerOrFactoryFunction;
      }
    };
  
    /**
     * Gets the default or overridden logger
     * @public
     */
    function getParams() {
      return { logger };
    }
  
    return {
      /**
       * Gets the target for a configurator function to run on
       * @public
       */
      getTarget: function() {
        return { useLogger: useLogger };
      },
      getParams: getParams
    };
  }
docs: Provides logger configurability
  @private
  @param {Object} logger - the default logger