whole_func_string: function(conf, bitwise, parent) {
    EventEmitter.call(this);
    conf = conf || {};
    constants(this);
    this.keys = keys;
    this.bitwise = (bitwise === true);
    this.configure();
    var cstreams = parent && conf.streams;
    var streams = conf.streams, stream = conf.stream;
    streams = streams || this.getDefaultStream(conf);
    delete conf.streams;
    delete conf.stream;
    var target = parent ? merge(parent.conf, {}) : merge(defaults, {});
    this.conf = merge(conf, target);
    if(typeof this.conf.name !== 'string' || !this.conf.name.length) {
      throw new Error('Logger name \'' + this.conf.name + '\' is invalid');
    }
    this.name = this.conf.name;
    conf.streams = streams;
    if(stream) conf.stream = stream;
    this.pid = this.conf.pid || process.pid;
    this.hostname = this.conf.hostname || os.hostname();
    this.fields = {};
    this.streams = [];
    if(parent && cstreams) {
      streams = Array.isArray(streams) ? streams : [streams];
      streams = streams.concat(conf.streams);
    }
    this.initialize(streams);
  }
func_code_string: function(conf, bitwise, parent) {
    EventEmitter.call(this);
    conf = conf || {};
    constants(this);
    this.keys = keys;
    this.bitwise = (bitwise === true);
    this.configure();
    var cstreams = parent && conf.streams;
    var streams = conf.streams, stream = conf.stream;
    streams = streams || this.getDefaultStream(conf);
    delete conf.streams;
    delete conf.stream;
    var target = parent ? merge(parent.conf, {}) : merge(defaults, {});
    this.conf = merge(conf, target);
    if(typeof this.conf.name !== 'string' || !this.conf.name.length) {
      throw new Error('Logger name \'' + this.conf.name + '\' is invalid');
    }
    this.name = this.conf.name;
    conf.streams = streams;
    if(stream) conf.stream = stream;
    this.pid = this.conf.pid || process.pid;
    this.hostname = this.conf.hostname || os.hostname();
    this.fields = {};
    this.streams = [];
    if(parent && cstreams) {
      streams = Array.isArray(streams) ? streams : [streams];
      streams = streams.concat(conf.streams);
    }
    this.initialize(streams);
  }
func_documentation_string: Create a Logger instance.
  
  @param conf The logger configuration.
  @param bitwise A boolean indicating that log levels
  should use bitwise operators.
  @param parent A parent logger that owns this logger.