whole_func_string: function log(ctx, start, len, err, event) {
    // get the status code of the response
    const status = err ? (err.status || 500) : (ctx.status || 404);
  
    // set the color of the status code;
    const s = status / 100 | 0;
    const color = colorCodes[s];
  
    // get the human readable response length
    let length;
    if (~[204, 205, 304].indexOf(status)) {
      length = "";
    } else if (null == len) {
      length = "-";
    } else {
      length = bytes(len);
    }
  
    const upstream = err ? chalk.red("xxx")
      : event === "end" ? chalk.yellow("-x-")
        : chalk.gray("-->");
  
    logger.debug(`${upstream} ${chalk.bold(ctx.method)} ${chalk.gray(ctx.originalUrl)} ${chalk[color](status)} ${chalk.gray(time(start))} ${chalk.gray(length)}`);
  }
func_code_string: function log(ctx, start, len, err, event) {
    // get the status code of the response
    const status = err ? (err.status || 500) : (ctx.status || 404);
  
    // set the color of the status code;
    const s = status / 100 | 0;
    const color = colorCodes[s];
  
    // get the human readable response length
    let length;
    if (~[204, 205, 304].indexOf(status)) {
      length = "";
    } else if (null == len) {
      length = "-";
    } else {
      length = bytes(len);
    }
  
    const upstream = err ? chalk.red("xxx")
      : event === "end" ? chalk.yellow("-x-")
        : chalk.gray("-->");
  
    logger.debug(`${upstream} ${chalk.bold(ctx.method)} ${chalk.gray(ctx.originalUrl)} ${chalk[color](status)} ${chalk.gray(time(start))} ${chalk.gray(length)}`);
  }
func_documentation_string: Log helper.