diff --git a/lib/expressLogger.js b/lib/expressLogger.js new file mode 100644 index 0000000..002ff6b --- /dev/null +++ b/lib/expressLogger.js @@ -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 + + }; +}()); diff --git a/scribe.js b/scribe.js index 0706cfc..8ca44e6 100644 --- a/scribe.js +++ b/scribe.js @@ -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 *