code: function GenericNodeProvider(options) {
      GenericNodeProvider.super_.call(this, options);
  
      this.loggerOptions = options ? options.loggerOptions : undefined;
  
      logger = options ? options.logger : undefined;
  
      if (logger) {
          this.logger = logger;
          cloudUtil.setLogger(logger);
          cryptoUtil.setLogger(logger);
      } else if (this.loggerOptions) {
          this.loggerOptions.module = module;
          logger = Logger.getLogger(this.loggerOptions);
          cloudUtil.setLoggerOptions(this.loggerOptions);
          cryptoUtil.setLoggerOptions(this.loggerOptions);
          this.logger = logger;
      } else {
          // use super's logger
          logger = this.logger;
          cloudUtil.setLogger(logger);
          cryptoUtil.setLogger(logger);
      }
  }
docs: Constructor
  @class
  @classdesc
  Generic node provider implementation.
  
  @param {Object} [options]               - Options for the instance.
  @param {Object} [options.clOptions]     - Command line options if called from a script.
  @param {Object} [options.logger]        - Logger to use. Or, pass loggerOptions to get your own logger.
  @param {Object} [options.loggerOptions] - Options for the logger.
  See {@link module:logger.getLogger} for details.