realm-object-server-enterprise
Version:
Realm Object Server Enterprise
47 lines • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const axon = require("axon");
const realm_object_server_1 = require("realm-object-server");
class LogSender extends realm_object_server_1.Logger {
constructor(destinations, level) {
super();
this.toConnect = 0;
this.sock = new axon.socket('pub');
this.sock.set('hwm', 10);
for (const dst of destinations) {
this.toConnect++;
this.sock.connect('tcp://' + dst);
}
this.connectPromise = new Promise((resolve, reject) => {
this.connectResolve = resolve;
});
this.sock.on('connect', () => {
console.log('connected to log receiver');
this.toConnect--;
if (this.toConnect === 0) {
this.connectResolve();
}
});
this.sock.on('disconnect', () => {
console.log('disconnected from log receiver');
});
this.sock.on('error', (err) => {
console.log('error in log sender', err);
});
this.sock.on('drop', (msg) => {
console.log('dropped a log message', msg);
});
}
connected() {
return this.connectPromise;
}
log(level, msg, ctx) {
this.sock.send(level, msg, ctx);
}
close() {
this.sock.close();
super.close();
}
}
exports.LogSender = LogSender;
//# sourceMappingURL=LogSender.js.map