_logToTarget (target, severity, date, elems) {
    const verbosity = this._severities[severity]
    const testObj = elems[elems.length - 1]
    if (verbosity >= target.leastVerbose &&
        verbosity <= target.mostVerbose &&
        !logUtil.matchesOneKey(testObj, target.blacklist) &&
        logUtil.matchesAllKeys(testObj, target.whitelist)) {
      const str = target.formatter(severity, date, elems)
      target.log(severity, date, str)
    }
  }
/**
   * Pushes a set of elements to a given logging target, given that the
   * restrictions set on the given target do not block it.
   *
   * Note that, for efficiency, this function assumes that the elements have
   * been rearranged so that all standard JS objects have been merged into a
   * single object, and that object is the last element in the array of elements.
   * The side-effect of this efficiency-boost is that the blacklist/whitelist
   * tests will be run on that resulting object; so if there are any duplicate
   * keys that were renamed during the merge, the filters will not be applied
   * to those keys.  Likelihood of this being a problem is low, but this may be
   * revisited in a future version of Bristol.
   * @param {{
   *   log,
   *   formatter,
   *   blacklist,
   *   whitelist,
   *   leastVerbose,
   *   mostVerbose
   * }} target A target object to which the log elements should be pushed
   * @param {string} severity The severity level under which to log the elements
   * @param {Date} date A Date object defining the time to be used for the log
   *   message
   * @param {Array} elems An array of elements to be logged, of any type.
   * @private
   */
Pushes a set of elements to a given logging target, given that the
restrictions set on the given target do not block it.

Note that, for efficiency, this function assumes that the elements have
been rearranged so that all standard JS objects have been merged into a
single object, and that object is the last element in the array of elements.
The side-effect of this efficiency-boost is that the blacklist/whitelist
tests will be run on that resulting object; so if there are any duplicate
keys that were renamed during the merge, the filters will not be applied
to those keys.  Likelihood of this being a problem is low, but this may be
revisited in a future version of Bristol.
@param {{
log,
formatter,
blacklist,
whitelist,
leastVerbose,
mostVerbose
}} target A target object to which the log elements should be pushed
@param {string} severity The severity level under which to log the elements
@param {Date} date A Date object defining the time to be used for the log
message
@param {Array} elems An array of elements to be logged, of any type.
@private
Pushes a set of elements to a given logging target given that the restrictions set on the given target do not block it . Note that for efficiency this function assumes that the elements have been rearranged so that all standard JS objects have been merged into a single object and that object is the last element in the array of elements . The side - effect of this efficiency - boost is that the blacklist / whitelist tests will be run on that resulting object ; so if there are any duplicate keys that were renamed during the merge the filters will not be applied to those keys . Likelihood of this being a problem is low but this may be revisited in a future version of Bristol . @param {{ log formatter blacklist whitelist leastVerbose mostVerbose }} target A target object to which the log elements should be pushed @param { string } severity The severity level under which to log the elements @param { Date } date A Date object defining the time to be used for the log message @param { Array } elems An array of elements to be logged of any type . @private
_logToTarget (target, severity, date, elems) {
    const verbosity = this._severities[severity]
    const testObj = elems[elems.length - 1]
    if (verbosity >= target.leastVerbose &&
        verbosity <= target.mostVerbose &&
        !logUtil.matchesOneKey(testObj, target.blacklist) &&
        logUtil.matchesAllKeys(testObj, target.whitelist)) {
      const str = target.formatter(severity, date, elems)
      target.log(severity, date, str)
    }
  }
_logToTarget ( target , severity , date , elems ) { const verbosity = this . _severities [ severity ] const testObj = elems [ elems . length - 1 ] if ( verbosity >= target . leastVerbose && verbosity <= target . mostVerbose && ! logUtil . matchesOneKey ( testObj , target . blacklist ) && logUtil . matchesAllKeys ( testObj , target . whitelist ) ) { const str = target . formatter ( severity , date , elems ) target . log ( severity , date , str ) } }
Pushes a set of elements to a given logging target, given that the
 restrictions set on the given target do not block it.
Pushes a set of elements to a given logging target given that the restrictions set on the given target do not block it .