       options.headers['Content-Type'] = 'application/xml; charset=UTF-8'
 
     console.time 'Recurly API request'
-    log "info", {paymentMethodId, operation, data}
+    logHelper "info", {paymentMethodId, operation, data}
 
     req = https.request options, (res)->
       res.setEncoding 'utf8'

        xml2js.parseString body, (err, result)=>
          if err
            callback [new models.Error 'xml', 'Invalid XML']
            log "error",{paymentMethodId, operation, data: err}
          else if result.error
            callback [new models.Error result.error.symbol[0], result.error.description[0]._]
            log "error", {paymentMethodId, operation, data: result.error}
          else if result.errors
            # See https://docs.recurly.com/api/basics/validation-errors for XML format
            errors = []

              else
                errors.push new models.Error err1, err1
            callback errors
            logHelper "error", {paymentMethodId, operation, data: result.errors}
          else
            # Find next page's URL if necessary
            nextUrl = parseNextUrl res  if res.headers.link
            callback null, result, nextUrl
            logHelper "info", {paymentMethodId, operation, data: JSON.stringify(result)}

    req.on 'error', (e)->
      callback [new models.Error 'connection', 'Unable to connect to payment backend.']
