'use strict' var chalk = require('chalk') // colorize keywords var keywordMap = { SETUP: chalk.black.bgGreen.bold, PHANTOMJS: chalk.black.bgMagenta.bold, ROUTES: chalk.white.bgBlue.bold, WEBSERVER: chalk.black.bgCyan.bold, ERROR: chalk.black.bgRed.bold, ECHO: chalk.black.bgYellowBright.bold, } // output formatted datetime before each log entry var formatConsoleDate = () => { var date = new Date() var hour = date.getHours() var minutes = date.getMinutes() var seconds = date.getSeconds() var milliseconds = date.getMilliseconds() return ((hour < 10) ? '0' + hour: hour) + ':' + ((minutes < 10) ? '0' + minutes: minutes) + ':' + ((seconds < 10) ? '0' + seconds: seconds) + '.' + ('00' + milliseconds).slice(-3) } // log with colour var logWithColour = function(item, text) { console.log( chalk.black.bgWhite(formatConsoleDate()), keywordMap[item]('[' + item + ']'), text) } // log without colour var logWithoutColour = function(item, text) { console.log(formatConsoleDate(), '[' + item + ']', text) } // export the log function module.exports = { setOption: function (use_colour, quiet) { if (use_colour === false) this.log = logWithoutColour if (quiet === true) this.log = function () {} }, log: logWithColour }