code: function Logger(tag, logger) {
    this._tag = tag;
    this._logger = logger;
    this._level = 1;
  
    // support the various logging functions
    var _this = this;
    ['log', 'trace', 'debug', 'info', 'warn', 'warning', 'error', 'fatal', 'exception'].forEach(function(f) {
      _this[f] = function() {
        if (_this._logger && LEVEL[f] <= _this._level) {
          var message;
          // add the tag to the message
          for (var i = 0; i < arguments.length; ++i) {
            if (typeof arguments[i] === 'string') {
              arguments[i] = "["+_this._tag+"] " + arguments[i];
              message = arguments[i];
              break;
            }
          }
          var method = _this._logger[f] || _this._logger['log'];
          method.apply(_this._logger, arguments);
        }
      }
    });
  }
docs: Logger.
  @param tag a tag to use on every message
  @param logger the underlying logger instance
  @constructor