docs: function loggerEmitter(opts) {
  
    if (!(this instanceof loggerEmitter)) return new loggerEmitter(opts); // new is optional
    events.EventEmitter.call(this);
    opts = opts || {};
    var logger = this;
  
    logger.noConsole   = opts.noConsole || false;
    logger.noErrors    = opts.noErrors  || false;
    logger.log         = log;
    logger.log.logger  = logger;
    logger.log.inspect = inspect;
  
    function log(x) {
      var msg;
      if (util.isError(x)) {
        msg = x.stack || x.message;
        if (!logger.noErrors) {
          logger.emit('error', x); // throws if no listener
        }
        else {
          logger.emit('log', msg);
        }
      }
      else {
        msg = util.format.apply(logger, arguments);
        logger.emit('log', msg);
      }
  
      if (!logger.noConsole) {
        console.log(msg);
      }
  
      return msg;
    }
  
    function inspect() { return 'logger-emitter'; }
  }