Summary: Tidy the Aphlict server by splitting the functionality into two main modules, `AphlictClientServer` and `AphlictAdminServer. There is still further tidying that could be done here, but I feel that this puts us in a much better place. Test Plan: Sent notifications via `/notification/status/`. Reviewers: epriestley, #blessed_reviewers Reviewed By: epriestley, #blessed_reviewers Subscribers: Korvin, epriestley Differential Revision: https://secure.phabricator.com/D11383
46 lines
916 B
JavaScript
46 lines
916 B
JavaScript
var JX = require('javelin').JX;
|
|
|
|
var fs = require('fs');
|
|
var util = require('util');
|
|
|
|
JX.install('AphlictLog', {
|
|
construct: function() {
|
|
this._consoles = [];
|
|
this._logs = [];
|
|
},
|
|
|
|
members: {
|
|
_consoles: null,
|
|
_logs: null,
|
|
|
|
addConsole: function(console) {
|
|
this._consoles.push(console);
|
|
return this;
|
|
},
|
|
|
|
addLog: function(path) {
|
|
this._logs.push(fs.createWriteStream(path, {
|
|
flags: 'a',
|
|
encoding: 'utf8',
|
|
mode: 0664,
|
|
}));
|
|
return this;
|
|
},
|
|
|
|
log: function() {
|
|
var str = util.format.apply(null, arguments);
|
|
var date = new Date().toLocaleString();
|
|
str = '[' + date + '] ' + str;
|
|
|
|
var ii;
|
|
for (ii = 0; ii < this._consoles.length; ii++) {
|
|
this._consoles[ii].log(str);
|
|
}
|
|
|
|
for (ii = 0; ii < this._logs.length; ii++) {
|
|
this._logs[ii].write(str + '\n');
|
|
}
|
|
},
|
|
},
|
|
});
|