3d-interface/lib/NodeLog.js

86 lines
1.8 KiB
JavaScript

var Log = {};
var Colors = Object.freeze({
DEFAULT: '\033[0m',
BLACK: '\033[30m',
RED: '\033[31m',
GREEN: '\033[32m',
YELLOW: '\033[33m',
BLUE: '\033[34m',
MAGENTA: '\033[35m',
CYAN: '\033[36m',
});
var isDev = require('express')().get('env') === 'development';
var log;
if (isDev) {
log = function(elt, color) {
console.log(color + elt + Colors.DEFAULT);
};
} else {
log = function(elt, color) {
console.log(elt);
};
}
Log.ready = function(msg) {
log('[RDY] ' + new Date() + ' ' + msg, Colors.GREEN);
};
Log.request = function(req, res) {
if (req.headers['x-forwarded-for'] !== undefined || isDev) {
log(
'[REQ] ' + new Date() + ' ' +
(req.headers['x-forwarded-for'] || req.connection.remoteAddress) +
' : ' + req.url,
Colors.CYAN
);
}
};
Log.socket = {};
Log.socket.connection = function(socket) {
log(
'[SOK] ' + new Date() + ' ' +
(socket.handshake.headers['x-forwarded-for'] || socket.handshake.address) + ' connection',
Colors.MAGENTA
);
};
Log.socket.disconnect = function(socket) {
log(
'[SOK] ' + new Date() + ' ' +
(socket.handshake.headers['x-forwarded-for'] || socket.handshake.address) + ' disconnect',
Colors.MAGENTA
);
};
Log.dberror = function(error) {
log(
'[DBE] ' + new Date() + ' ' + error,
Colors.RED
);
};
Log.mailerror = function(error) {
log(
'[MLE] ' + new Date() + ' ' + error,
Colors.RED
);
};
if (isDev) {
Log.debug = function(info) {
log(
'[DBG] ' + (info !== undefined ? info : ''),
Colors.YELLOW
);
};
} else {
Log.debug = function(){};
}
module.exports = Log;