UNPKG

html-pages

Version:

Simple development HTTP Server for file serving and directory listing made by a Designer. Use it for hacking your HTML/JavaScript/CSS files but not for deploying your final site.

102 lines (80 loc) 2.34 kB
// Packages const _ = require('lodash'); const color = require('chalk'); const moment = require('moment'); module.exports = (defaultLevel) => { const self = {}; self._levels = { SILENT: 0, ERROR: 1, WARN: 2, INFO: 3, DEBUG: 4 }; let currentLevelNum = self._levels.INFO; self.getLevel = () => { return currentLevelNum; }; self.setLevel = (level) => { if (_.isString(level) && _.isNumber(self._levels[level.toUpperCase()])) { currentLevelNum = self._levels[level.toUpperCase()]; } else { console.log(color.yellow('Warning!') + ' The log-level "' + level + '" is unknown. The default option will be used.'); } }; self._printMessage = (txt, hideDate = false) => { const date = (hideDate === false ? color.gray('[' + moment().format('MMM Do, HH:mm:ss') + '] ') : ''); console.log(date + txt); }; self.logRequest = (code, method, url, userAgent = '') => { let message = ''; if (code >= 200 && code <= 299) { message += color.green(code); } else if (code >= 300 && code <= 399) { message += color.yellow(code); } else if (code >= 400) { message += color.red(code); } else { message += color.blue(code); } message += ' ' + method + ' ' + url; if (currentLevelNum === self._levels.DEBUG) { message += color.italic.gray(' - ' + userAgent); } message += color.italic.gray(' - [' + (global.utils.getMsTime() - global.requestTime).toFixed(2) + 'ms]'); return message; }; self.logSilent = (txt) => { return false; }; self.logError = (txt, hideDate = false) => { if (currentLevelNum < 1) { return false; } self._printMessage(txt, hideDate); }; // This function is an alias to error; self.log = self.logError; self.logWarn = (txt, hideDate = false) => { if (currentLevelNum < 2) { return false; } self._printMessage(txt, hideDate); }; self.logInfo = (txt, hideDate = false) => { if (currentLevelNum < 3) { return false; } self._printMessage(txt, hideDate); }; self.logDebug = (txt, hideDate = false) => { if (currentLevelNum < 4) { return false; } self._printMessage(color.gray(txt), hideDate); }; // Set default log level self.setLevel(defaultLevel); return self; };