summaryrefslogtreecommitdiff
path: root/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'index.js')
-rw-r--r--index.js28
1 files changed, 20 insertions, 8 deletions
diff --git a/index.js b/index.js
index 8116dfb..339422a 100644
--- a/index.js
+++ b/index.js
@@ -28,7 +28,10 @@ var server = http.createServer(app)
/* Only one level is logged, and numerical timestamps are easier to compare. */
logger.format = function(level, date, message) {
- return (+date) + ":" + message;
+ return JSON.stringify({
+ date: +date,
+ data: JSON.parse(message) /* TODO: Get rid of encoding/decoding hack (write own logger?) */
+ });
}
/* Number of sessions we've seen. */
@@ -44,6 +47,8 @@ var channelCount = 0;
/* Channel ID -> { usernum, filters } */
var channels = {};
+var logServerAction = entityLogger(0);
+
sessionSockets.on('connection', function (err, socket, session) {
/*
* Don't do anything until they send a login message.
@@ -51,6 +56,7 @@ sessionSockets.on('connection', function (err, socket, session) {
*/
socket.on('login', function() {
/* Someone new connected. Restore or initialise their session data. */
+ var logAction = entityLogger(session.nid);
session.nid = session.nid || (++count);
session.nick = session.nick || null;
session.save();
@@ -62,7 +68,7 @@ sessionSockets.on('connection', function (err, socket, session) {
}
sockets[session.nid] = socket;
/* New user! */
- logAction("CONNECT", socket.handshake.address.address);
+ logAction("CONNECT", { "ip": socket.handshake.address.address, "proxied-ip": socket.handshake.headers['x-forwarded-for'] });
users[session.nid] = { nick: session.nick, filters: {} };
/* Let them know of their data. */
socket.emit('selflogin', {
@@ -174,14 +180,20 @@ sessionSockets.on('connection', function (err, socket, session) {
});
});
});
- function logAction(action, content) {
+});
+
+function entityLogger(id) {
+ return function(action, content) {
+ var message = {
+ user:id,
+ action:action
+ };
if (arguments.length > 1) {
- logger.info(session.nid, action, content);
- } else {
- logger.info(session.nid, action);
+ message.content = content;
}
+ logger.info(JSON.stringify(message));
}
-});
+}
-logger.info(0, "STARTUP");
+logServerAction(0, "STARTUP");
server.listen(3000);