diff --git a/README.md b/README.md index f272a4a..f53fde6 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,7 @@ const options = { useColors: true, // Enable colors color: Colors.White, // Set the color of the logger showTimestamp: true, // Display timestamp in the log message + useLocalTime: false, // Display timestamp in local timezone showLevel: true, // Display log level in the log message filename: null, // Set file path to log to a file appendFile: true, // Append logfile instead of overwriting diff --git a/dist/logplease.min.js b/dist/logplease.min.js index 4367d93..2d435df 100644 --- a/dist/logplease.min.js +++ b/dist/logplease.min.js @@ -1 +1 @@ -var Logger=function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=14)}([function(t,e){var n=t.exports={version:"2.5.0"};"number"==typeof __e&&(__e=n)},function(t,e,n){t.exports=!n(2)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){e.nextTick=function(t){setTimeout(t,0)},e.platform=e.arch=e.execPath=e.title="browser",e.pid=1,e.browser=!0,e.env={},e.argv=[],e.binding=function(t){throw new Error("No such module. (Possibly not yet loaded)")},function(){var t,r="/";e.cwd=function(){return r},e.chdir=function(e){t||(t=n(15)),r=t.resolve(e,r)}}(),e.exit=e.kill=e.umask=e.dlopen=e.uptime=e.memoryUsage=e.uvCounters=function(){},e.features={}},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){var r=n(4),o=n(0),i=n(30),s=n(32),u=function(t,e,n){var c,l,a,f=t&u.F,p=t&u.G,h=t&u.S,v=t&u.P,y=t&u.B,g=t&u.W,d=p?o:o[e]||(o[e]={}),m=d.prototype,b=p?r:h?r[e]:(r[e]||{}).prototype;p&&(n=e);for(c in n)(l=!f&&b&&void 0!==b[c])&&c in d||(a=l?b[c]:n[c],d[c]=p&&"function"!=typeof b[c]?n[c]:y&&l?i(a,r):g&&b[c]==a?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(a):v&&"function"==typeof a?i(Function.call,a):a,v&&((d.virtual||(d.virtual={}))[c]=a,t&u.R&&m&&!m[c]&&s(m,c,a)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){var r=n(8);t.exports=function(t){return Object(r(t))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var r=n(19),o=n(28);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(11),o=n(8);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(21);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(33),o=n(34),i=n(36),s=Object.defineProperty;e.f=n(1)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return s(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){"use strict";(function(e){function r(t){return t&&t.__esModule?t:{default:t}}var o=n(16),i=r(o),s=n(38),u=r(s),c=n(44),l=r(c),a=n(45),f=r(a),p=n(49),h=n(50).format,v=n(54).EventEmitter,y=!!e.version,g={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR",NONE:"NONE"},d=g.DEBUG,m=null,b=new v,w={Black:0,Red:1,Green:2,Yellow:3,Blue:4,Magenta:5,Cyan:6,Grey:7,White:9,Default:9};y||(w={Black:"Black",Red:"IndianRed",Green:"LimeGreen",Yellow:"Orange",Blue:"RoyalBlue",Magenta:"Orchid",Cyan:"SkyBlue",Grey:"DimGrey",White:"White",Default:"Black"});var _=[w.Cyan,w.Green,w.Yellow,w.Red,w.Default],x={useColors:!0,color:w.Default,showTimestamp:!0,showLevel:!0,filename:m,appendFile:!0},O=function(){function t(e,n){(0,l.default)(this,t),this.category=e;var r={};(0,u.default)(r,x),(0,u.default)(r,n),this.options=r}return(0,f.default)(t,[{key:"debug",value:function(){this._shouldLog(g.DEBUG)&&this._write(g.DEBUG,h.apply(null,arguments))}},{key:"log",value:function(){this._shouldLog(g.DEBUG)&&this.debug.apply(this,arguments)}},{key:"info",value:function(){this._shouldLog(g.INFO)&&this._write(g.INFO,h.apply(null,arguments))}},{key:"warn",value:function(){this._shouldLog(g.WARN)&&this._write(g.WARN,h.apply(null,arguments))}},{key:"error",value:function(){this._shouldLog(g.ERROR)&&this._write(g.ERROR,h.apply(null,arguments))}},{key:"_write",value:function(t,e){(this.options.filename||m)&&!this.fileWriter&&y&&(this.fileWriter=p.openSync(this.options.filename||m,this.options.appendFile?"a+":"w+"));var n=this._format(t,e),r=this._createLogMessage(t,e),o=this._createLogMessage(t,e,n.timestamp,n.level,n.category,n.text);this.fileWriter&&y&&p.writeSync(this.fileWriter,r+"\n",null,"utf-8"),y||!this.options.useColors?(console.log(o),b.emit("data",this.category,t,e)):t===g.ERROR?this.options.showTimestamp&&this.options.showLevel?console.error(o,n.timestamp,n.level,n.category,n.text):this.options.showTimestamp&&!this.options.showLevel?console.error(o,n.timestamp,n.category,n.text):!this.options.showTimestamp&&this.options.showLevel?console.error(o,n.level,n.category,n.text):console.error(o,n.category,n.text):this.options.showTimestamp&&this.options.showLevel?console.log(o,n.timestamp,n.level,n.category,n.text):this.options.showTimestamp&&!this.options.showLevel?console.log(o,n.timestamp,n.category,n.text):!this.options.showTimestamp&&this.options.showLevel?console.log(o,n.level,n.category,n.text):console.log(o,n.category,n.text)}},{key:"_format",value:function(t,e){var n="",r="",o="",s=": ";if(this.options.useColors){var u=(0,i.default)(g).map(function(t){return g[t]}).indexOf(t),c=this.options.color;y?(this.options.showTimestamp&&(n="[3"+w.Grey+"m"),this.options.showLevel&&(r="[3"+_[u]+";22m"),o="[3"+c+";1m",s=": "):(this.options.showTimestamp&&(n="color:"+w.Grey),this.options.showLevel&&(r="color:"+_[u]),o="color:"+c+"; font-weight: bold")}return{timestamp:n,level:r,category:o,text:s}}},{key:"_createLogMessage",value:function(t,e,n,r,o,i){n=n||"",r=r||"",o=o||"",i=i||": ",!y&&this.options.useColors&&(this.options.showTimestamp&&(n="%c"),this.options.showLevel&&(r="%c"),o="%c",i=": %c");var s="";return this.options.showTimestamp&&(s+=(new Date).toISOString()+" "),s=n+s,this.options.showLevel&&(s+=r+"["+t+"]"+(t===g.INFO||t===g.WARN?" ":"")+" "),s+=o+this.category,s+=i+e}},{key:"_shouldLog",value:function(t){var n=void 0!==e&&void 0!==e.env&&void 0!==e.env.LOG?e.env.LOG.toUpperCase():null;n="undefined"!=typeof window&&window.LOG?window.LOG.toUpperCase():n;var r=n||d,o=(0,i.default)(g).map(function(t){return g[t]});return o.indexOf(t)>=o.indexOf(r)}}]),t}();t.exports={Colors:w,LogLevels:g,setLogLevel:function(t){d=t},setLogfile:function(t){m=t},create:function(t,e){return new O(t,e)},forceBrowserMode:function(t){return y=!t},events:b}}).call(e,n(3))},function(t,e,n){(function(t){function n(t,e){for(var n=0,r=t.length-1;r>=0;r--){var o=t[r];"."===o?t.splice(r,1):".."===o?(t.splice(r,1),n++):n&&(t.splice(r,1),n--)}if(e)for(;n--;n)t.unshift("..");return t}function r(t,e){if(t.filter)return t.filter(e);for(var n=[],r=0;r=-1&&!o;i--){var s=i>=0?arguments[i]:t.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(e=s+"/"+e,o="/"===s.charAt(0))}return e=n(r(e.split("/"),function(t){return!!t}),!o).join("/"),(o?"/":"")+e||"."},e.normalize=function(t){var o=e.isAbsolute(t),i="/"===s(t,-1);return t=n(r(t.split("/"),function(t){return!!t}),!o).join("/"),t||o||(t="."),t&&i&&(t+="/"),(o?"/":"")+t},e.isAbsolute=function(t){return"/"===t.charAt(0)},e.join=function(){var t=Array.prototype.slice.call(arguments,0);return e.normalize(r(t,function(t,e){if("string"!=typeof t)throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))},e.relative=function(t,n){function r(t){for(var e=0;e=0&&""===t[n];n--);return e>n?[]:t.slice(e,n-e+1)}t=e.resolve(t).substr(1),n=e.resolve(n).substr(1);for(var o=r(t.split("/")),i=r(n.split("/")),s=Math.min(o.length,i.length),u=s,c=0;cc;)r(u,n=e[c++])&&(~i(l,n)||l.push(n));return l}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(10),o=n(23),i=n(24);t.exports=function(t){return function(e,n,s){var u,c=r(e),l=o(c.length),a=i(s,l);if(t&&n!=n){for(;l>a;)if((u=c[a++])!=u)return!0}else for(;l>a;a++)if((t||a in c)&&c[a]===n)return t||a||0;return!t&&-1}}},function(t,e,n){var r=n(12),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(12),o=Math.max,i=Math.min;t.exports=function(t,e){return t=r(t),t<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(26)("keys"),o=n(27);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(4),o=r["__core-js_shared__"]||(r["__core-js_shared__"]={});t.exports=function(t){return o[t]||(o[t]={})}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(5),o=n(0),i=n(2);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],s={};s[t]=e(n),r(r.S+r.F*i(function(){n(1)}),"Object",s)}},function(t,e,n){var r=n(31);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,n){var r=n(13),o=n(37);t.exports=n(1)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(6);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){t.exports=!n(1)&&!n(2)(function(){return 7!=Object.defineProperty(n(35)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(6),o=n(4).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e,n){var r=n(6);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){t.exports={default:n(39),__esModule:!0}},function(t,e,n){n(40),t.exports=n(0).Object.assign},function(t,e,n){var r=n(5);r(r.S+r.F,"Object",{assign:n(41)})},function(t,e,n){"use strict";var r=n(9),o=n(42),i=n(43),s=n(7),u=n(11),c=Object.assign;t.exports=!c||n(2)(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r})?function(t,e){for(var n=s(t),c=arguments.length,l=1,a=o.f,f=i.f;c>l;)for(var p,h=u(arguments[l++]),v=a?r(h).concat(a(h)):r(h),y=v.length,g=0;y>g;)f.call(h,p=v[g++])&&(n[p]=h[p]);return n}:c},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";e.__esModule=!0;var r=n(46),o=function(t){return t&&t.__esModule?t:{default:t}}(r);e.default=function(){function t(t,e){for(var n=0;n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),y(n)?r.showHidden=n:n&&e._extend(r,n),_(r.showHidden)&&(r.showHidden=!1),_(r.depth)&&(r.depth=2),_(r.colors)&&(r.colors=!1),_(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=i),c(r,t,r.depth)}function i(t,e){var n=o.styles[e];return n?"["+o.colors[n][0]+"m"+t+"["+o.colors[n][1]+"m":t}function s(t,e){return t}function u(t){var e={};return t.forEach(function(t,n){e[t]=!0}),e}function c(t,n,r){if(t.customInspect&&n&&E(n.inspect)&&n.inspect!==e.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,t);return b(o)||(o=c(t,o,r)),o}var i=l(t,n);if(i)return i;var s=Object.keys(n),y=u(s);if(t.showHidden&&(s=Object.getOwnPropertyNames(n)),L(n)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return a(n);if(0===s.length){if(E(n)){var g=n.name?": "+n.name:"";return t.stylize("[Function"+g+"]","special")}if(x(n))return t.stylize(RegExp.prototype.toString.call(n),"regexp");if(j(n))return t.stylize(Date.prototype.toString.call(n),"date");if(L(n))return a(n)}var d="",m=!1,w=["{","}"];if(v(n)&&(m=!0,w=["[","]"]),E(n)){d=" [Function"+(n.name?": "+n.name:"")+"]"}if(x(n)&&(d=" "+RegExp.prototype.toString.call(n)),j(n)&&(d=" "+Date.prototype.toUTCString.call(n)),L(n)&&(d=" "+a(n)),0===s.length&&(!m||0==n.length))return w[0]+d+w[1];if(r<0)return x(n)?t.stylize(RegExp.prototype.toString.call(n),"regexp"):t.stylize("[Object]","special");t.seen.push(n);var _;return _=m?f(t,n,r,y,s):s.map(function(e){return p(t,n,r,y,e,m)}),t.seen.pop(),h(_,d,w)}function l(t,e){if(_(e))return t.stylize("undefined","undefined");if(b(e)){var n="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(n,"string")}return m(e)?t.stylize(""+e,"number"):y(e)?t.stylize(""+e,"boolean"):g(e)?t.stylize("null","null"):void 0}function a(t){return"["+Error.prototype.toString.call(t)+"]"}function f(t,e,n,r,o){for(var i=[],s=0,u=e.length;s-1&&(u=i?u.split("\n").map(function(t){return" "+t}).join("\n").substr(2):"\n"+u.split("\n").map(function(t){return" "+t}).join("\n"))):u=t.stylize("[Circular]","special")),_(s)){if(i&&o.match(/^\d+$/))return u;s=JSON.stringify(""+o),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=t.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=t.stylize(s,"string"))}return s+": "+u}function h(t,e,n){var r=0;return t.reduce(function(t,e){return r++,e.indexOf("\n")>=0&&r++,t+e.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?n[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+n[1]:n[0]+e+" "+t.join(", ")+" "+n[1]}function v(t){return Array.isArray(t)}function y(t){return"boolean"==typeof t}function g(t){return null===t}function d(t){return null==t}function m(t){return"number"==typeof t}function b(t){return"string"==typeof t}function w(t){return"symbol"==typeof t}function _(t){return void 0===t}function x(t){return O(t)&&"[object RegExp]"===R(t)}function O(t){return"object"==typeof t&&null!==t}function j(t){return O(t)&&"[object Date]"===R(t)}function L(t){return O(t)&&("[object Error]"===R(t)||t instanceof Error)}function E(t){return"function"==typeof t}function S(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t}function R(t){return Object.prototype.toString.call(t)}function k(t){return t<10?"0"+t.toString(10):t.toString(10)}function M(){var t=new Date,e=[k(t.getHours()),k(t.getMinutes()),k(t.getSeconds())].join(":");return[t.getDate(),G[t.getMonth()],e].join(" ")}function N(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var T=/%[sdj%]/g;e.format=function(t){if(!b(t)){for(var e=[],n=0;n=i)return t;switch(t){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(t){return"[Circular]"}default:return t}}),u=r[n];n0&&this._events[t].length>o&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(t,e){function n(){this.removeListener(t,n),o||(o=!0,e.apply(this,arguments))}if(!r(e))throw TypeError("listener must be a function");var o=!1;return n.listener=e,this.on(t,n),this},n.prototype.removeListener=function(t,e){var n,o,s,u;if(!r(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(n=this._events[t],s=n.length,o=-1,n===e||r(n.listener)&&n.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(i(n)){for(u=s;u-- >0;)if(n[u]===e||n[u].listener&&n[u].listener===e){o=u;break}if(o<0)return this;1===n.length?(n.length=0,delete this._events[t]):n.splice(o,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},n.prototype.removeAllListeners=function(t){var e,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[t],r(n))this.removeListener(t,n);else if(n)for(;n.length;)this.removeListener(t,n[n.length-1]);return delete this._events[t],this},n.prototype.listeners=function(t){return this._events&&this._events[t]?r(this._events[t])?[this._events[t]]:this._events[t].slice():[]},n.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(r(e))return 1;if(e)return e.length}return 0},n.listenerCount=function(t,e){return t.listenerCount(e)}}]); \ No newline at end of file +var Logger=function(t){function e(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,e),o.l=!0,o.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=14)}([function(t,e){var n=t.exports={version:"2.5.0"};"number"==typeof __e&&(__e=n)},function(t,e,n){t.exports=!n(2)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){e.nextTick=function(t){setTimeout(t,0)},e.platform=e.arch=e.execPath=e.title="browser",e.pid=1,e.browser=!0,e.env={},e.argv=[],e.binding=function(t){throw new Error("No such module. (Possibly not yet loaded)")},function(){var t,r="/";e.cwd=function(){return r},e.chdir=function(e){t||(t=n(15)),r=t.resolve(e,r)}}(),e.exit=e.kill=e.umask=e.dlopen=e.uptime=e.memoryUsage=e.uvCounters=function(){},e.features={}},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){var r=n(4),o=n(0),i=n(30),s=n(32),u=function(t,e,n){var c,l,a,f=t&u.F,p=t&u.G,h=t&u.S,v=t&u.P,y=t&u.B,g=t&u.W,d=p?o:o[e]||(o[e]={}),m=d.prototype,b=p?r:h?r[e]:(r[e]||{}).prototype;p&&(n=e);for(c in n)(l=!f&&b&&void 0!==b[c])&&c in d||(a=l?b[c]:n[c],d[c]=p&&"function"!=typeof b[c]?n[c]:y&&l?i(a,r):g&&b[c]==a?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(a):v&&"function"==typeof a?i(Function.call,a):a,v&&((d.virtual||(d.virtual={}))[c]=a,t&u.R&&m&&!m[c]&&s(m,c,a)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){var r=n(8);t.exports=function(t){return Object(r(t))}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var r=n(19),o=n(28);t.exports=Object.keys||function(t){return r(t,o)}},function(t,e,n){var r=n(11),o=n(8);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(21);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(33),o=n(34),i=n(36),s=Object.defineProperty;e.f=n(1)?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return s(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){"use strict";(function(e){function r(t){return t&&t.__esModule?t:{default:t}}var o=n(16),i=r(o),s=n(38),u=r(s),c=n(44),l=r(c),a=n(45),f=r(a),p=n(49),h=n(50).format,v=n(54).EventEmitter,y=!!e.version,g={DEBUG:"DEBUG",INFO:"INFO",WARN:"WARN",ERROR:"ERROR",NONE:"NONE"},d=g.DEBUG,m=null,b=new v,w={Black:0,Red:1,Green:2,Yellow:3,Blue:4,Magenta:5,Cyan:6,Grey:7,White:9,Default:9};y||(w={Black:"Black",Red:"IndianRed",Green:"LimeGreen",Yellow:"Orange",Blue:"RoyalBlue",Magenta:"Orchid",Cyan:"SkyBlue",Grey:"DimGrey",White:"White",Default:"Black"});var _=[w.Cyan,w.Green,w.Yellow,w.Red,w.Default],x={useColors:!0,color:w.Default,showTimestamp:!0,useLocalTime:!1,showLevel:!0,filename:m,appendFile:!0},O=function(){function t(e,n){(0,l.default)(this,t),this.category=e;var r={};(0,u.default)(r,x),(0,u.default)(r,n),this.options=r}return(0,f.default)(t,[{key:"debug",value:function(){this._shouldLog(g.DEBUG)&&this._write(g.DEBUG,h.apply(null,arguments))}},{key:"log",value:function(){this._shouldLog(g.DEBUG)&&this.debug.apply(this,arguments)}},{key:"info",value:function(){this._shouldLog(g.INFO)&&this._write(g.INFO,h.apply(null,arguments))}},{key:"warn",value:function(){this._shouldLog(g.WARN)&&this._write(g.WARN,h.apply(null,arguments))}},{key:"error",value:function(){this._shouldLog(g.ERROR)&&this._write(g.ERROR,h.apply(null,arguments))}},{key:"_write",value:function(t,e){(this.options.filename||m)&&!this.fileWriter&&y&&(this.fileWriter=p.openSync(this.options.filename||m,this.options.appendFile?"a+":"w+"));var n=this._format(t,e),r=this._createLogMessage(t,e),o=this._createLogMessage(t,e,n.timestamp,n.level,n.category,n.text);this.fileWriter&&y&&p.writeSync(this.fileWriter,r+"\n",null,"utf-8"),y||!this.options.useColors?(console.log(o),b.emit("data",this.category,t,e)):t===g.ERROR?this.options.showTimestamp&&this.options.showLevel?console.error(o,n.timestamp,n.level,n.category,n.text):this.options.showTimestamp&&!this.options.showLevel?console.error(o,n.timestamp,n.category,n.text):!this.options.showTimestamp&&this.options.showLevel?console.error(o,n.level,n.category,n.text):console.error(o,n.category,n.text):this.options.showTimestamp&&this.options.showLevel?console.log(o,n.timestamp,n.level,n.category,n.text):this.options.showTimestamp&&!this.options.showLevel?console.log(o,n.timestamp,n.category,n.text):!this.options.showTimestamp&&this.options.showLevel?console.log(o,n.level,n.category,n.text):console.log(o,n.category,n.text)}},{key:"_format",value:function(t,e){var n="",r="",o="",s=": ";if(this.options.useColors){var u=(0,i.default)(g).map(function(t){return g[t]}).indexOf(t),c=this.options.color;y?(this.options.showTimestamp&&(n="[3"+w.Grey+"m"),this.options.showLevel&&(r="[3"+_[u]+";22m"),o="[3"+c+";1m",s=": "):(this.options.showTimestamp&&(n="color:"+w.Grey),this.options.showLevel&&(r="color:"+_[u]),o="color:"+c+"; font-weight: bold")}return{timestamp:n,level:r,category:o,text:s}}},{key:"_createLogMessage",value:function(t,e,n,r,o,i){n=n||"",r=r||"",o=o||"",i=i||": ",!y&&this.options.useColors&&(this.options.showTimestamp&&(n="%c"),this.options.showLevel&&(r="%c"),o="%c",i=": %c");var s="";return this.options.showTimestamp&&!this.options.useLocalTime&&(s+=(new Date).toISOString()+" "),this.options.showTimestamp&&this.options.useLocalTime&&(s+=(new Date).toLocaleString()+" "),s=n+s,this.options.showLevel&&(s+=r+"["+t+"]"+(t===g.INFO||t===g.WARN?" ":"")+" "),s+=o+this.category,s+=i+e}},{key:"_shouldLog",value:function(t){var n=void 0!==e&&void 0!==e.env&&void 0!==e.env.LOG?e.env.LOG.toUpperCase():null;n="undefined"!=typeof window&&window.LOG?window.LOG.toUpperCase():n;var r=n||d,o=(0,i.default)(g).map(function(t){return g[t]});return o.indexOf(t)>=o.indexOf(r)}}]),t}();t.exports={Colors:w,LogLevels:g,setLogLevel:function(t){d=t},setLogfile:function(t){m=t},create:function(t,e){return new O(t,e)},forceBrowserMode:function(t){return y=!t},events:b}}).call(e,n(3))},function(t,e,n){(function(t){function n(t,e){for(var n=0,r=t.length-1;r>=0;r--){var o=t[r];"."===o?t.splice(r,1):".."===o?(t.splice(r,1),n++):n&&(t.splice(r,1),n--)}if(e)for(;n--;n)t.unshift("..");return t}function r(t,e){if(t.filter)return t.filter(e);for(var n=[],r=0;r=-1&&!o;i--){var s=i>=0?arguments[i]:t.cwd();if("string"!=typeof s)throw new TypeError("Arguments to path.resolve must be strings");s&&(e=s+"/"+e,o="/"===s.charAt(0))}return e=n(r(e.split("/"),function(t){return!!t}),!o).join("/"),(o?"/":"")+e||"."},e.normalize=function(t){var o=e.isAbsolute(t),i="/"===s(t,-1);return t=n(r(t.split("/"),function(t){return!!t}),!o).join("/"),t||o||(t="."),t&&i&&(t+="/"),(o?"/":"")+t},e.isAbsolute=function(t){return"/"===t.charAt(0)},e.join=function(){var t=Array.prototype.slice.call(arguments,0);return e.normalize(r(t,function(t,e){if("string"!=typeof t)throw new TypeError("Arguments to path.join must be strings");return t}).join("/"))},e.relative=function(t,n){function r(t){for(var e=0;e=0&&""===t[n];n--);return e>n?[]:t.slice(e,n-e+1)}t=e.resolve(t).substr(1),n=e.resolve(n).substr(1);for(var o=r(t.split("/")),i=r(n.split("/")),s=Math.min(o.length,i.length),u=s,c=0;cc;)r(u,n=e[c++])&&(~i(l,n)||l.push(n));return l}},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(10),o=n(23),i=n(24);t.exports=function(t){return function(e,n,s){var u,c=r(e),l=o(c.length),a=i(s,l);if(t&&n!=n){for(;l>a;)if((u=c[a++])!=u)return!0}else for(;l>a;a++)if((t||a in c)&&c[a]===n)return t||a||0;return!t&&-1}}},function(t,e,n){var r=n(12),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(12),o=Math.max,i=Math.min;t.exports=function(t,e){return t=r(t),t<0?o(t+e,0):i(t,e)}},function(t,e,n){var r=n(26)("keys"),o=n(27);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e,n){var r=n(4),o=r["__core-js_shared__"]||(r["__core-js_shared__"]={});t.exports=function(t){return o[t]||(o[t]={})}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(5),o=n(0),i=n(2);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],s={};s[t]=e(n),r(r.S+r.F*i(function(){n(1)}),"Object",s)}},function(t,e,n){var r=n(31);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,n){var r=n(13),o=n(37);t.exports=n(1)?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(6);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){t.exports=!n(1)&&!n(2)(function(){return 7!=Object.defineProperty(n(35)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(6),o=n(4).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e,n){var r=n(6);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e,n){t.exports={default:n(39),__esModule:!0}},function(t,e,n){n(40),t.exports=n(0).Object.assign},function(t,e,n){var r=n(5);r(r.S+r.F,"Object",{assign:n(41)})},function(t,e,n){"use strict";var r=n(9),o=n(42),i=n(43),s=n(7),u=n(11),c=Object.assign;t.exports=!c||n(2)(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r})?function(t,e){for(var n=s(t),c=arguments.length,l=1,a=o.f,f=i.f;c>l;)for(var p,h=u(arguments[l++]),v=a?r(h).concat(a(h)):r(h),y=v.length,g=0;y>g;)f.call(h,p=v[g++])&&(n[p]=h[p]);return n}:c},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){"use strict";e.__esModule=!0,e.default=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";e.__esModule=!0;var r=n(46),o=function(t){return t&&t.__esModule?t:{default:t}}(r);e.default=function(){function t(t,e){for(var n=0;n=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),y(n)?r.showHidden=n:n&&e._extend(r,n),_(r.showHidden)&&(r.showHidden=!1),_(r.depth)&&(r.depth=2),_(r.colors)&&(r.colors=!1),_(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=i),c(r,t,r.depth)}function i(t,e){var n=o.styles[e];return n?"["+o.colors[n][0]+"m"+t+"["+o.colors[n][1]+"m":t}function s(t,e){return t}function u(t){var e={};return t.forEach(function(t,n){e[t]=!0}),e}function c(t,n,r){if(t.customInspect&&n&&E(n.inspect)&&n.inspect!==e.inspect&&(!n.constructor||n.constructor.prototype!==n)){var o=n.inspect(r,t);return b(o)||(o=c(t,o,r)),o}var i=l(t,n);if(i)return i;var s=Object.keys(n),y=u(s);if(t.showHidden&&(s=Object.getOwnPropertyNames(n)),j(n)&&(s.indexOf("message")>=0||s.indexOf("description")>=0))return a(n);if(0===s.length){if(E(n)){var g=n.name?": "+n.name:"";return t.stylize("[Function"+g+"]","special")}if(x(n))return t.stylize(RegExp.prototype.toString.call(n),"regexp");if(L(n))return t.stylize(Date.prototype.toString.call(n),"date");if(j(n))return a(n)}var d="",m=!1,w=["{","}"];if(v(n)&&(m=!0,w=["[","]"]),E(n)){d=" [Function"+(n.name?": "+n.name:"")+"]"}if(x(n)&&(d=" "+RegExp.prototype.toString.call(n)),L(n)&&(d=" "+Date.prototype.toUTCString.call(n)),j(n)&&(d=" "+a(n)),0===s.length&&(!m||0==n.length))return w[0]+d+w[1];if(r<0)return x(n)?t.stylize(RegExp.prototype.toString.call(n),"regexp"):t.stylize("[Object]","special");t.seen.push(n);var _;return _=m?f(t,n,r,y,s):s.map(function(e){return p(t,n,r,y,e,m)}),t.seen.pop(),h(_,d,w)}function l(t,e){if(_(e))return t.stylize("undefined","undefined");if(b(e)){var n="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(n,"string")}return m(e)?t.stylize(""+e,"number"):y(e)?t.stylize(""+e,"boolean"):g(e)?t.stylize("null","null"):void 0}function a(t){return"["+Error.prototype.toString.call(t)+"]"}function f(t,e,n,r,o){for(var i=[],s=0,u=e.length;s-1&&(u=i?u.split("\n").map(function(t){return" "+t}).join("\n").substr(2):"\n"+u.split("\n").map(function(t){return" "+t}).join("\n"))):u=t.stylize("[Circular]","special")),_(s)){if(i&&o.match(/^\d+$/))return u;s=JSON.stringify(""+o),s.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(s=s.substr(1,s.length-2),s=t.stylize(s,"name")):(s=s.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),s=t.stylize(s,"string"))}return s+": "+u}function h(t,e,n){var r=0;return t.reduce(function(t,e){return r++,e.indexOf("\n")>=0&&r++,t+e.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?n[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+n[1]:n[0]+e+" "+t.join(", ")+" "+n[1]}function v(t){return Array.isArray(t)}function y(t){return"boolean"==typeof t}function g(t){return null===t}function d(t){return null==t}function m(t){return"number"==typeof t}function b(t){return"string"==typeof t}function w(t){return"symbol"==typeof t}function _(t){return void 0===t}function x(t){return O(t)&&"[object RegExp]"===R(t)}function O(t){return"object"==typeof t&&null!==t}function L(t){return O(t)&&"[object Date]"===R(t)}function j(t){return O(t)&&("[object Error]"===R(t)||t instanceof Error)}function E(t){return"function"==typeof t}function S(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t}function R(t){return Object.prototype.toString.call(t)}function k(t){return t<10?"0"+t.toString(10):t.toString(10)}function M(){var t=new Date,e=[k(t.getHours()),k(t.getMinutes()),k(t.getSeconds())].join(":");return[t.getDate(),G[t.getMonth()],e].join(" ")}function T(t,e){return Object.prototype.hasOwnProperty.call(t,e)}var N=/%[sdj%]/g;e.format=function(t){if(!b(t)){for(var e=[],n=0;n=i)return t;switch(t){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(t){return"[Circular]"}default:return t}}),u=r[n];n0&&this._events[t].length>o&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(t,e){function n(){this.removeListener(t,n),o||(o=!0,e.apply(this,arguments))}if(!r(e))throw TypeError("listener must be a function");var o=!1;return n.listener=e,this.on(t,n),this},n.prototype.removeListener=function(t,e){var n,o,s,u;if(!r(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(n=this._events[t],s=n.length,o=-1,n===e||r(n.listener)&&n.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(i(n)){for(u=s;u-- >0;)if(n[u]===e||n[u].listener&&n[u].listener===e){o=u;break}if(o<0)return this;1===n.length?(n.length=0,delete this._events[t]):n.splice(o,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},n.prototype.removeAllListeners=function(t){var e,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[t],r(n))this.removeListener(t,n);else if(n)for(;n.length;)this.removeListener(t,n[n.length-1]);return delete this._events[t],this},n.prototype.listeners=function(t){return this._events&&this._events[t]?r(this._events[t])?[this._events[t]]:this._events[t].slice():[]},n.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(r(e))return 1;if(e)return e.length}return 0},n.listenerCount=function(t,e){return t.listenerCount(e)}}]); \ No newline at end of file diff --git a/es5/index.js b/es5/index.js index d03b52d..a345f13 100644 --- a/es5/index.js +++ b/es5/index.js @@ -76,6 +76,7 @@ var defaultOptions = { useColors: true, color: Colors.Default, showTimestamp: true, + useLocalTime: false, showLevel: true, filename: GlobalLogfile, appendFile: true @@ -212,7 +213,9 @@ var Logger = function () { var result = ''; - if (this.options.showTimestamp) result += '' + new Date().toISOString() + ' '; + if (this.options.showTimestamp && !this.options.useLocalTime) result += '' + new Date().toISOString() + ' '; + + if (this.options.showTimestamp && this.options.useLocalTime) result += '' + new Date().toLocaleString() + ' '; result = timestampFormat + result; diff --git a/example/bundle.js b/example/bundle.js index 125cddf..0ae06ac 100644 --- a/example/bundle.js +++ b/example/bundle.js @@ -318,8 +318,8 @@ exports.f = __webpack_require__(1) ? Object.defineProperty : function defineProp "use strict"; -/* - Using the ES5 module for the sake of example. +/* + Using the ES5 module for the sake of example. To use the regular ES6 version, one would include it with: const Logger = require('logplease') */ @@ -329,6 +329,7 @@ var Logger = __webpack_require__(15); var logger1 = Logger.create('daemon', { filename: 'debug.log', useColors: false, appendFile: true }); var logger2 = Logger.create('utils'); var logger3 = Logger.create('logger3', { color: Logger.Colors.Magenta, showTimestamp: false, showLevel: false }); +var logger4 = Logger.create('logger4-local-time', { useLocalTime: true }); var red = Logger.create('red', { color: Logger.Colors.Red, showTimestamp: false, showLevel: false }); var green = Logger.create('green', { color: Logger.Colors.Green, showTimestamp: false, showLevel: false }); @@ -356,6 +357,11 @@ logger3.info('This is an info message #' + number); logger3.warn('This is a warning message #' + number); logger3.error('This is an error message #' + number); +logger4.debug('This is a debug message #' + number); +logger4.info('This is an info message #' + number); +logger4.warn('This is a warning message #' + number); +logger4.error('This is an error message #' + number); + red.log('Red log message'); // log() is an alias for debug() green.log('Green log message'); yellow.log('Yellow log message'); @@ -448,6 +454,7 @@ var defaultOptions = { useColors: true, color: Colors.Default, showTimestamp: true, + useLocalTime: false, showLevel: true, filename: GlobalLogfile, appendFile: true @@ -584,7 +591,9 @@ var Logger = function () { var result = ''; - if (this.options.showTimestamp) result += '' + new Date().toISOString() + ' '; + if (this.options.showTimestamp && !this.options.useLocalTime) result += '' + new Date().toISOString() + ' '; + + if (this.options.showTimestamp && this.options.useLocalTime) result += '' + new Date().toLocaleString() + ' '; result = timestampFormat + result; diff --git a/example/example.js b/example/example.js index 4e0fe7b..a5347bd 100644 --- a/example/example.js +++ b/example/example.js @@ -1,7 +1,7 @@ 'use strict'; -/* - Using the ES5 module for the sake of example. +/* + Using the ES5 module for the sake of example. To use the regular ES6 version, one would include it with: const Logger = require('logplease') */ @@ -10,6 +10,7 @@ const Logger = require('../es5/index'); const logger1 = Logger.create('daemon', { filename: 'debug.log', useColors: false, appendFile: true }); const logger2 = Logger.create('utils'); const logger3 = Logger.create('logger3', { color: Logger.Colors.Magenta, showTimestamp: false, showLevel: false }); +const logger4 = Logger.create('logger4-local-time', { useLocalTime: true }); const red = Logger.create('red', { color: Logger.Colors.Red, showTimestamp: false, showLevel: false }); const green = Logger.create('green', { color: Logger.Colors.Green, showTimestamp: false, showLevel: false }); @@ -37,6 +38,11 @@ logger3.info(`This is an info message #${number}`); logger3.warn(`This is a warning message #${number}`); logger3.error(`This is an error message #${number}`); +logger4.debug(`This is a debug message #${number}`); +logger4.info(`This is an info message #${number}`); +logger4.warn(`This is a warning message #${number}`); +logger4.error(`This is an error message #${number}`); + red.log(`Red log message`); // log() is an alias for debug() green.log(`Green log message`); yellow.log(`Yellow log message`); diff --git a/example/index.html b/example/index.html index de901c9..5da6456 100644 --- a/example/index.html +++ b/example/index.html @@ -8,6 +8,7 @@ var logger1 = Logger.create('daemon', { useColors: false }); var logger2 = Logger.create('utils'); var logger3 = Logger.create('logger3', { color: Logger.Colors.Magenta, showTimestamp: false, showLevel: false }); + var logger4 = Logger.create('logger4', { useLocalTime: true }); logger1.debug(`This is a log message`); logger1.info(`This is a log message`); @@ -24,6 +25,11 @@ logger3.warn(`This is a log message`); logger3.error(`This is a log message`); + logger4.debug(`This is a log message`); + logger4.info(`This is a log message`); + logger4.warn(`This is a log message`); + logger4.error(`This is a log message`); + var red = Logger.create('red', { color: Logger.Colors.Red, showTimestamp: false, showLevel: false }); var green = Logger.create('green', { color: Logger.Colors.Green, showTimestamp: false, showLevel: false }); var yellow = Logger.create('yellow', { color: Logger.Colors.Yellow, showTimestamp: false, showLevel: false }); diff --git a/src/index.js b/src/index.js index 4d5fa8a..36dcf4a 100644 --- a/src/index.js +++ b/src/index.js @@ -58,6 +58,7 @@ const defaultOptions = { useColors: true, color: Colors.Default, showTimestamp: true, + useLocalTime: false, showLevel: true, filename: GlobalLogfile, appendFile: true, @@ -194,9 +195,12 @@ class Logger { let result = ''; - if(this.options.showTimestamp) + if(this.options.showTimestamp && !this.options.useLocalTime) result += '' + new Date().toISOString() + ' '; + if(this.options.showTimestamp && this.options.useLocalTime) + result += '' + new Date().toLocaleString() + ' '; + result = timestampFormat + result; if(this.options.showLevel) diff --git a/test/logplease.test.js b/test/logplease.test.js index df6bd7e..7cbefc0 100644 --- a/test/logplease.test.js +++ b/test/logplease.test.js @@ -69,6 +69,7 @@ describe('logplease', function() { useColors: false, color: Logger.Colors.Yellow, showTimestamp: false, + useLocalTime: true, showLevel: false, filename: 'test.log', appendFile: false, @@ -79,6 +80,7 @@ describe('logplease', function() { assert.equal(log.options.useColors, false) assert.equal(log.options.color, Logger.Colors.Yellow) assert.equal(log.options.showTimestamp, false) + assert.equal(log.options.useLocalTime, true) assert.equal(log.options.showLevel, false) assert.equal(log.options.filename, 'test.log') assert.equal(log.options.appendFile, false) @@ -96,6 +98,7 @@ describe('logplease', function() { assert.equal(log.options.useColors, false) assert.equal(log.options.color, Logger.Colors.Yellow) assert.equal(log.options.showTimestamp, true) + assert.equal(log.options.useLocalTime, false) assert.equal(log.options.showLevel, true) assert.equal(log.options.filename, null) assert.equal(log.options.appendFile, true) @@ -178,15 +181,36 @@ describe('logplease', function() { done() }) - it('writes timestamp', (done) => { + it('writes timestamp in iso time', (done) => { let out = '' let old = console.log + // ignore seconds when comparing times + let isoTime = new Date().toISOString().slice(0, 19) console.log = (d) => out += d const log = Logger.create('test1') log.debug("hi") console.log = old assert.equal(out.split(" ").length, 4) assert.equal(out.split(" ")[3], 'hi') + let loggedTime = out.split(" ")[0].replace('\u001b[37m', '').slice(0, 19) + assert.equal(isoTime, loggedTime) + done() + }) + + it('writes timestamp in local time', (done) => { + let out = '' + let old = console.log + let localTime = new Date().toLocaleString() + console.log = (d) => out += d + const log = Logger.create('test1', {useLocalTime: true}) + log.debug("hi") + console.log = old + let logArray = out.split(" ") + // extra space in local time increases length + assert.equal(logArray.length, 5) + assert.equal(logArray[4], 'hi') + let loggedTime = logArray.slice(0, 2).join(' ').replace('\u001b[37m', '') + assert.equal(localTime, loggedTime) done() })