code: function logMethod (name, method) {
    var result = function () {
      var args = Array.prototype.slice.call(arguments);
      var event = {
        name: name,
        args: args
      };
      return when.try(function () {
        indentation++;
        event.state = 'Start';
        event.indentation = indentation;
        this._logMethodCall(event);
        return method.apply(this, args);
      }.bind(this), function (res) {
        indentation--;
        event.state = 'End';
        event.result = res;
        this._logMethodCall(event);
        return res;
      }.bind(this), function (err) {
        indentation--;
        event.state = 'Err';
        event.error = err;
        this._logMethodCall(event);
        throw err;
      }.bind(this));
    };
  
    result.logging = true;
  
    return result;
  }
docs: ///////////////////// Private Functions // ///////////////////// 
  Wraps one method with a function that logs input and output
  
  @param {String} name
  @param {Function} method
  @return {Function}