docs: function parser(opt) {
  
    var options = opt || Object.create(null);
    var my = {
      filename: resolve(String(options.filename)),
      ip: Boolean(options.ip),
      url: Boolean(options.url),
      response: Boolean(options.response),
      pid: Boolean(options.pid),
      bytesReq: Boolean(options.bytesReq),
      bytesRes: Boolean(options.bytesRes),
      referrer: Boolean(options.referrer),
      auth: Boolean(options.auth),
      agent: Boolean(options.agent),
      version: Boolean(options.version),
      level: Boolean(options.level),
      message: Boolean(options.message),
      timestamp: Boolean(options.timestamp),
      report: options.report === false ? false : true,
      csv: options.csv,
      search: options.search
    };
    if (!fs.existsSync(my.filename)) {
      var e = my.filename + ' not exists';
      throw new Error(e);
    }
    if (my.csv) {
      my.csv = resolve(String(my.csv));
    }
    if (my.search) {
      my.search = new RegExp(my.search, 'g');
    }
  
    return wrapper(my);
  }