ExpressLogger

This commit is contained in:
Guillaume Wuip 2014-12-19 17:57:27 +01:00
parent 03da642d5e
commit 4d1f4e6ac6
2 changed files with 68 additions and 4 deletions

56
lib/expressLogger.js Normal file
View file

@ -0,0 +1,56 @@
/* jshint -W098 */
(function () {
var colorsjs = require('colors/safe'),
Console2 = require('./console2');
/**
* logger
*
* @param {Console2|undefined} console
* @param {Function|undefined} validate
*/
var logger = function (console, validate) {
if (!(console instanceof Console2)) {
if (!(process.console instanceof Console2)) {
throw new Error("No process.console");
} else {
console = process.console;
}
}
if (console.info === undefined) {
throw new Error("No 'log' logger attach to console");
}
return function (req, res, next) {
if (!validate || validate(req, res)) {
console
.time()
.tag(
{msg : 'Express', colors : 'cyan'},
{msg : req.ip, colors : 'red'},
{msg : req.method, colors : 'green'},
{
msg : (/mobile/i.test(req.headers['user-agent']) ? 'MOBILE' : 'DESKTOP'),
colors : 'grey'
}
)
.info(req.url);
}
next();
};
};
module.exports = {
logger : logger
};
}());

View file

@ -4,10 +4,10 @@
'use strict';
var Console2 = require('./lib/console2.js'),
logWriter = require('./lib/logWriter.js'),
LogWriter = logWriter.LogWriter,
webPanel = require('./lib/webPanel.js');
var Console2 = require('./lib/console2.js'),
LogWriter = require('./lib/logWriter.js').LogWriter,
ExpressLogger = require('./lib/expressLogger.js'),
webPanel = require('./lib/webPanel.js');
/**
@ -209,6 +209,14 @@
*/
webPanel : initWebPanel,
/**
* express
*
* Utilities for express
* @type {Object}
*/
express : ExpressLogger,
/**
* Console2
*