aboutsummaryrefslogtreecommitdiff
path: root/lib/loggers/socket.js
blob: b057d77726e8b4b25ae238392f4f3c83d5de354b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
(function (global) {
  var Module, Class;

  // Load up dependencies
  if (typeof require === 'function') {
    var Ne = require('neon');
    var ioClient = require('socket.io-client');
    Module = Ne.Module;
    Class = Ne.Class;
  } else {
    Module = global.Module;
    Class = global.Class;
  }

  var Cobalt = {};
  Module(Cobalt, 'Logger')({});

  Cobalt.Logger.Socket = Class(Cobalt.Logger, 'Socket')({
    prototype : {
      serverUrl : '/',

      init : function (config) {
        var logger = this;

        if (config) {
          for (property in config) {
            logger[property] = config[property];
          }
        }

        if (!logger.socketIo) {
          logger.socketIo = ioClient;
        }

        logger._socket = logger.socketIo.connect(logger.serverUrl);
      },

      log : function () {
        var i, messageArray = [];

        for (i = 0; i < arguments.length; i++) {
          messageArray.push(arguments[i]);
        }

        if (this._socket) {
          this._socket.emit('log', messageArray);
        }
      }
    }
  });

  if (Cobalt.Logger.Socket.__objectSpy) {
    Cobalt.Logger.Socket.__objectSpy.destroy();
  }

  if (typeof require === 'function') {
    global.Socket = Cobalt.Logger.Socket;
  } else {
    global.Cobalt.Logger.Socket = Cobalt.Logger.Socket;
  }
}(typeof window !== 'undefined' ? window : (typeof exports !== 'undefined' ? exports : self)));