_complete(level, maybeContext, maybeMessage, maybeAction) {
    const action = typeof maybeContext !== 'string' ? maybeAction : maybeMessage;
    const args = maybeAction === action ? [maybeContext, maybeMessage] : [maybeContext];
    const { context, msg } = this._parseArgs({ ph: 'B' }, args);
    const end = (ctx) => this[level].end({
      id: context.id,
      cat: context.cat,
      ...ctx,
    });

    let result;
    this._beginInternal(level, context, msg);
    try {
      result = typeof action === 'function'
        ? action()
        : action;

      if (!isPromiseLike(result)) {
        end({ success: true });
      } else {
        result.then(
          () => end({ success: true }),
          (err) => end({ success: false, err }),
        );
      }

      return result;
    } catch (err) {
      end({ success: false, err });
      throw err;
    }
  }
@param {import('bunyan').LogLevel} level
@private