UNPKG

@tsed/logger

Version:
15 lines (14 loc) 16.4 kB
(function(a,f){typeof exports=="object"&&typeof module<"u"?f(exports):typeof define=="function"&&define.amd?define(["exports"],f):(a=typeof globalThis<"u"?globalThis:a||self,f(a["@tsed/logger"]={}))})(this,function(a){"use strict";var me=a=>{throw TypeError(a)};var Oe=(a,f,g)=>f.has(a)||me("Cannot "+g);var _e=(a,f,g)=>(Oe(a,f,"read from private field"),g?g.call(a):f.get(a)),we=(a,f,g)=>f.has(a)?me("Cannot add the same private member more than once"):f instanceof WeakSet?f.add(a):f.set(a,g),X=(a,f,g,A)=>(Oe(a,f,"write to private field"),A?A.call(a,g):f.set(a,g),g);var L;const f=new Map;class g{static get(e,t){typeof e!="string"&&(e=e.$name),f.has(e)||(e="colored",console.warn(e+" layout doesn't exists"));const n=f.get(e);return new n.provide(t)}}class A{constructor(e){we(this,L);this.config=e,this.configure(e)}get appenderOptions(){return this.__proto__.constructor.$appenderOptions}configure(e){var t;return Object.assign(this.config,e),X(this,L,g.get(((t=this.appenderOptions)==null?void 0:t.defaultLayout)||"colored",this.config)),this.config.layout&&X(this,L,g.get(this.config.layout.type,this.config.layout)),this}layout(...e){return _e(this,L).transform(...e)}}L=new WeakMap;const D=new Map;function Q(r){return e=>{e.$appenderOptions=r,e.$name=r.name,D.set(r.name,{provide:e})}}var Te=Object.defineProperty,Se=Object.getOwnPropertyDescriptor,be=(r,e,t,n)=>{for(var s=n>1?void 0:n?Se(e,t):e,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=(n?o(e,t,s):o(s))||s);return n&&s&&Te(e,t,s),s};a.ConsoleAppender=class extends A{constructor(){super(...arguments),this.log=console.log.bind(console)}write(e){this.log(this.layout(e,this.config.timezoneOffset))}},a.ConsoleAppender=be([Q({name:"console"})],a.ConsoleAppender);class k extends Map{toJSON(){return[...this.entries()].reduce((e,[t,n])=>({...e,[t]:n}),{})}}class ee{constructor(e,t,n,s){this.categoryName=e,this.level=t,this.data=n,this.context=s,this._startTime=new Date}get startTime(){return this.data&&this.data[0]&&this.data[0].time?this.data[0].time:this._startTime}get formatedLevel(){return this.formattedLevel}get formattedLevel(){return(this.level.toString()+" ").slice(0,5)}get cluster(){return{}}get pid(){return this.context.get("pid")}isMessage(){return this.data.length&&typeof this.data[0]!="object"}getData(){return this.isMessage()?{}:this.data[0]}getMessage(){return this.isMessage()?this.data:void 0}}class v{constructor(e,t){this.level=e,this.levelStr=t,this.level=e,this.levelStr=t}static getLevel(e,t){if(e instanceof v)return e;if(typeof e=="string"){const n=e.toUpperCase();return te[n]||t}return this.getLevel(e.toString())}toString(){return this.levelStr}isLessThanOrEqualTo(e){return typeof e=="string"&&(e=v.getLevel(e)),this.level<=e.level}isGreaterThanOrEqualTo(e){return typeof e=="string"&&(e=v.getLevel(e)),this.level>=e.level}isEqualTo(e){return typeof e=="string"&&(e=v.getLevel(e)),this.level===e.level}}const te={ALL:new v(Number.MIN_VALUE,"ALL"),TRACE:new v(5e3,"TRACE"),DEBUG:new v(1e4,"DEBUG"),INFO:new v(2e4,"INFO"),WARN:new v(3e4,"WARN"),ERROR:new v(4e4,"ERROR"),FATAL:new v(5e4,"FATAL"),MARK:new v(9007199254740992,"MARK"),OFF:new v(Number.MAX_VALUE,"OFF")};function S(){return te}class O{constructor(e){this.config=e}}function _(r){return e=>{e.$name=r.name,f.set(r.name,{provide:e})}}function re(r,e){let t;return r?(t=parseInt(r.substr(1),10),e.substring(0,t)):e}function ne(r,e){let t;if(r)if(r.charAt(0)==="-")for(t=parseInt(r.substr(1),10);e.length<t;)e+=" ";else for(t=parseInt(r,10);e.length<t;)e=` ${e}`;return e}function se(r,e,t){let n=r;return n=re(e,n),n=ne(t,n),n}const b={format(r,...e){return""}};var ae={exports:{}};(function(r){function e(h,u){for(var d=h.toString();d.length<u;)d="0"+d;return d}function t(h){return e(h,2)}function n(h){var u=Math.abs(h),d=String(Math.floor(u/60)),y=String(u%60);return d=("0"+d).slice(-2),y=("0"+y).slice(-2),h===0?"Z":(h<0?"+":"-")+d+":"+y}function s(h,u){typeof h!="string"&&(u=h,h=r.exports.ISO8601_FORMAT),u||(u=r.exports.now());var d=t(u.getDate()),y=t(u.getMonth()+1),P=t(u.getFullYear()),R=t(P.substring(2,4)),V=h.indexOf("yyyy")>-1?P:R,I=t(u.getHours()),G=t(u.getMinutes()),z=t(u.getSeconds()),B=e(u.getMilliseconds(),3),l=n(u.getTimezoneOffset()),c=h.replace(/dd/g,d).replace(/MM/g,y).replace(/y{1,4}/g,V).replace(/hh/g,I).replace(/mm/g,G).replace(/ss/g,z).replace(/SSS/g,B).replace(/O/g,l);return c}function i(h,u,d,y){h["set"+(y?"":"UTC")+u](d)}function o(h,u,d){var y=h.indexOf("O")<0,P=!1,R=[{pattern:/y{1,4}/,regexp:"\\d{1,4}",fn:function(l,c){i(l,"FullYear",c,y)}},{pattern:/MM/,regexp:"\\d{1,2}",fn:function(l,c){i(l,"Month",c-1,y),l.getMonth()!==c-1&&(P=!0)}},{pattern:/dd/,regexp:"\\d{1,2}",fn:function(l,c){P&&i(l,"Month",l.getMonth()-1,y),i(l,"Date",c,y)}},{pattern:/hh/,regexp:"\\d{1,2}",fn:function(l,c){i(l,"Hours",c,y)}},{pattern:/mm/,regexp:"\\d\\d",fn:function(l,c){i(l,"Minutes",c,y)}},{pattern:/ss/,regexp:"\\d\\d",fn:function(l,c){i(l,"Seconds",c,y)}},{pattern:/SSS/,regexp:"\\d\\d\\d",fn:function(l,c){i(l,"Milliseconds",c,y)}},{pattern:/O/,regexp:"[+-]\\d{1,2}:?\\d{2}?|Z",fn:function(l,c){c==="Z"?c=0:c=c.replace(":","");var ge=Math.abs(c),Ke=(c>0?-1:1)*(ge%100+Math.floor(ge/100)*60);l.setUTCMinutes(l.getUTCMinutes()+Ke)}}],V=R.reduce(function(l,c){return c.pattern.test(l.regexp)?(c.index=l.regexp.match(c.pattern).index,l.regexp=l.regexp.replace(c.pattern,"("+c.regexp+")")):c.index=-1,l},{regexp:h,index:[]}),I=R.filter(function(l){return l.index>-1});I.sort(function(l,c){return l.index-c.index});var G=new RegExp(V.regexp),z=G.exec(u);if(z){var B=d||r.exports.now();return I.forEach(function(l,c){l.fn(B,z[c+1])}),B}throw new Error("String '"+u+"' could not be parsed as '"+h+"'")}function m(h,u,d){if(!h)throw new Error("pattern must be supplied");return o(h,u,d)}function p(){return new Date}r.exports=s,r.exports.asString=s,r.exports.parse=m,r.exports.now=p,r.exports.ISO8601_FORMAT="yyyy-MM-ddThh:mm:ss.SSS",r.exports.ISO8601_WITH_TZ_OFFSET_FORMAT="yyyy-MM-ddThh:mm:ss.SSSO",r.exports.DATETIME_FORMAT="dd MM yyyy hh:mm:ss.SSS",r.exports.ABSOLUTETIME_FORMAT="hh:mm:ss.SSS"})(ae);var w=ae.exports;const ie={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[90,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};function U(r){return r?`\x1B[${ie[r][0]}m`:""}function x(r){return r?`\x1B[${ie[r][1]}m`:""}function oe(r,e){return U(e)+r+x(e)}function ce(r){return r.replace(/\[\d+m|\\u\d+b/gi,"")}function J(r,e,t){return oe(b.format("[%s] [%s] [%s] - ",w.asString(r.startTime,t),r.formattedLevel,r.categoryName),e)}var Le=Object.defineProperty,Ae=Object.getOwnPropertyDescriptor,Me=(r,e,t,n)=>{for(var s=n>1?void 0:n?Ae(e,t):e,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=(n?o(e,t,s):o(s))||s);return n&&s&&Le(e,t,s),s};a.BasicLayout=class extends O{transform(e,t){return J(e,void 0,t)+b.format(...[].concat(e.data))}},a.BasicLayout=Me([_({name:"basic"})],a.BasicLayout);var M=(r=>(r.ALL="grey",r.INFO="green",r.DEBUG="cyan",r.WARN="yellow",r.TRACE="blue",r.ERROR="red",r.FATAL="magenta",r.OFF="grey",r))(M||{}),Ee=Object.defineProperty,Pe=Object.getOwnPropertyDescriptor,De=(r,e,t,n)=>{for(var s=n>1?void 0:n?Pe(e,t):e,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=(n?o(e,t,s):o(s))||s);return n&&s&&Ee(e,t,s),s};a.ColoredLayout=class extends O{transform(e,t){const n=e.level.toString(),s=M[n];return J(e,s,t)+b.format(...[].concat(e.data))}},a.ColoredLayout=De([_({name:"colored"})],a.ColoredLayout);var je=Object.defineProperty,Ce=Object.getOwnPropertyDescriptor,Ne=(r,e,t,n)=>{for(var s=n>1?void 0:n?Ce(e,t):e,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=(n?o(e,t,s):o(s))||s);return n&&s&&je(e,t,s),s};a.DummyLayout=class extends O{transform(e,t){return e.data[0]}},a.DummyLayout=Ne([_({name:"dummy"})],a.DummyLayout);function W(r){const e={...r.context.toJSON(),startTime:r.startTime,categoryName:r.categoryName,level:r.level.toString()};return e.data=r.data.reduce((t,n)=>typeof n=="object"?(Object.assign(e,n),n.data?[].concat(t,n.data):t):[...t,ce(b.format(n))],[]),e}var $e=Object.defineProperty,Fe=Object.getOwnPropertyDescriptor,Re=(r,e,t,n)=>{for(var s=n>1?void 0:n?Fe(e,t):e,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=(n?o(e,t,s):o(s))||s);return n&&s&&$e(e,t,s),s};a.JsonLayout=class extends O{transform(e,t){const n=W(e);return JSON.stringify(n)+(this.config.separator||"")}},a.JsonLayout=Re([_({name:"json"})],a.JsonLayout);var Ie=Object.defineProperty,ze=Object.getOwnPropertyDescriptor,Be=(r,e,t,n)=>{for(var s=n>1?void 0:n?ze(e,t):e,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=(n?o(e,t,s):o(s))||s);return n&&s&&Ie(e,t,s),s};a.MessagePassThroughLayout=class extends O{transform(e,t){return b.format(...[].concat(e.data))}},a.MessagePassThroughLayout=Be([_({name:"messagePassThrough"})],a.MessagePassThroughLayout);var Ue=Object.defineProperty,xe=Object.getOwnPropertyDescriptor,Je=(r,e,t,n)=>{for(var s=n>1?void 0:n?xe(e,t):e,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=(n?o(e,t,s):o(s))||s);return n&&s&&Ue(e,t,s),s};a.ObjectLayout=class extends O{transform(e,t){return W(e)}},a.ObjectLayout=Je([_({name:"object"})],a.ObjectLayout);var We=Object.defineProperty,Ze=Object.getOwnPropertyDescriptor,le=r=>{throw TypeError(r)},He=(r,e,t,n)=>{for(var s=n>1?void 0:n?Ze(e,t):e,i=r.length-1,o;i>=0;i--)(o=r[i])&&(s=(n?o(e,t,s):o(s))||s);return n&&s&&We(e,t,s),s},ue=(r,e,t)=>e.has(r)||le("Cannot "+t),Z=(r,e,t)=>(ue(r,e,"read from private field"),t?t.call(r):e.get(r)),H=(r,e,t)=>e.has(r)?le("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(r):e.set(r,t),Y=(r,e,t,n)=>(ue(r,e,"write to private field"),e.set(r,t),t),j,C,N;const Ye=/%(-?[0-9]+)?(\.?[0-9]+)?([[\]cdhmnpjrzxy%])(\{([^}]+)\})?|([^%]+)/,qe="%r %p %c - %m%n";a.PatternLayout=class extends O{constructor(e){super(e),H(this,j),H(this,C),H(this,N),this.replaceToken=(t,n,s)=>Z(this,j)[t](n,s),Y(this,N,e&&e.pattern||qe),Y(this,C,e&&e.tokens),Y(this,j,new a.PatternLayout.LayoutReplacer(Z(this,C),this.config.timezoneOffset).build())}transform(e,t){let n="",s,i=Z(this,N);for(;(s=Ye.exec(i))!==null;){const o=s[1],m=s[2],p=s[3],h=s[5],u=s[6];if(u)n+=u.toString();else{const d=this.replaceToken(p,e,h);n+=se(d,m,o)}i=i.substr(s.index+s[0].length)}return n}},j=new WeakMap,C=new WeakMap,N=new WeakMap,a.PatternLayout=He([_({name:"pattern"})],a.PatternLayout);function E(r,e=" "){let t="";for(;r--;)t+=e;return t}function he(r,e){let t="┌",n=Object.keys(r);return n.forEach((s,i)=>{i!==0&&i!==n.length&&(t+="┬"),t+=E(r[s]+2*e.padding,"─")}),t+="┐",t}function fe(r,e){let t="└",n=Object.keys(r);return n.forEach((s,i)=>{i!==0&&i!==n.length&&(t+="┴"),t+=E(r[s]+2*e.padding,"─")}),t+="┘",t}function pe(r,e,t="─"){let n="";return Object.keys(r).forEach(s=>{n+="│",n+=E(r[s]+2*e.padding,t)}),n+="│",n}function q(r,e,t){let n="";return Object.keys(e).forEach(s=>{n+="│ ",n+=r[s],n+=E(e[s]+2*(t.padding-1)-r[s].length," "),n+=" "}),n+="│",n}function de(r,e={}){e.padding=e.padding||1,e.header===void 0&&(e.header={},Object.keys(r[0]).forEach(s=>e.header[s]=s));const t={};Object.keys(e.header).forEach(s=>t[s]=e.header[s].length),r.forEach(s=>{Object.keys(t).forEach(i=>t[i]=Math.max((""+s[i]).length,t[i]))});let n="";return n+=he(t,e)+` `,n+=q(e.header,t,e)+` `,r.forEach(s=>{n+=pe(t,e)+` `,n+=q(s,t,e)+` `}),n+=fe(t,e),n}class ve{constructor(){this._appenders=new Map,this._lvls=new Map}get size(){return this._appenders.size}has(e){return this._appenders.has(e)}get(e){return this._appenders.get(e)}set(e,t){var m;const n=typeof t.type=="string"?t.type:(m=t.type)==null?void 0:m.$name,s={level:["debug","info","trace","error","warn","fatal"],...t,type:n,options:t.options||{}};if(!D.has(s.type)){const p=new Error(`Appender ${s.type} doesn't exists. Check your configuration: ${JSON.stringify(s)} `);throw p.name="UNKNOW_APPENDER",p}const i=D.get(s.type).provide,o=new i(s);return"build"in o&&o.build(),this._appenders.set(e,{name:e,instance:o,config:s}),this._lvls.clear(),this}delete(e){let t=this._appenders.delete(e);return t&&this._lvls.clear(),t}clear(){this._appenders.clear(),this._lvls.clear()}forEach(e,t){this._appenders.forEach(e,t)}toArray(){const e=[];return this._appenders.forEach(t=>e.push(t)),e}byLogLevel(e){const t=e.toString();if(this._lvls.has(t))return this._lvls.get(t);const n=this.toArray().filter(s=>s.config.levels?s.config.levels.find(i=>i.toUpperCase()===e.toString()):!0).map(s=>s.instance);return this._lvls.set(e.toString(),n),n}}class ${constructor(e="default"){this._name=e,this._appenders=new ve,this._context=new k,this.level="all"}get appenders(){return this._appenders}get level(){return this._level.toString()}set level(e){this._level=v.getLevel(e,"debug")}get context(){return this._context}get name(){return this._name}set name(e){this._name=e}static createStack(){return new Error().stack.replace(`Error `,"").split(` `).filter((t,n)=>n>=2).join(` `)}isLevelEnabled(e){return this._level.isLessThanOrEqualTo(e)}debug(...e){return this.write(S().DEBUG,e)}info(...e){return this.write(S().INFO,e)}warn(...e){return this.write(S().WARN,e)}error(...e){return this.write(S().ERROR,e)}fatal(...e){return this.write(S().FATAL,e)}trace(...e){const t=` `+$.createStack()+` `;return e.push(t),this.write(S().TRACE,e)}start(){return this.level="ALL",this}stop(){return this.level="OFF",this}shutdown(){this.stop();const e=this.appenders.toArray().filter(t=>!!t.instance.shutdown).map(t=>t.instance.shutdown());return Promise.all(e)}drawTable(e,t={}){return de(e,t)}printTable(e,t={}){return this.info(` ${this.drawTable(e,t)}`),this}write(e,t){if(!this.isLevelEnabled(e))return this;const n=new ee(this._name,e,t,this._context);return this.appenders.byLogLevel(e).forEach(s=>{s.write(n)}),this}}function K(r,...e){const t=/(%?)(%([ojds]))/g;if(typeof r=="object"&&(r=JSON.stringify(r,null,2)),e.length){const n=(s,i,o,m)=>{let p=e.shift();switch(m){case"o":if(Array.isArray(p)){p=JSON.stringify(p);break}case"s":p=""+p;break;case"d":p=Number(p);break;case"j":p=JSON.stringify(p);break}return i?(e.unshift(p),s):p};r=String(r).replace(t,n)}return e.length&&(r+=" "+e.join(" ")),r=String(r).replace(/%{2,2}/g,"%"),""+r}const T=class T{constructor(e,t){this.tokens=e,this.timezoneOffset=t,this.categoryName=(n,s)=>{let i=n.categoryName;if(s){const o=parseInt(s,10),m=i.split(".");o<m.length&&(i=m.slice(m.length-o).join("."))}return i},this.formatAsDate=(n,s)=>{let i=w.ISO8601_FORMAT;return s&&(i=s,i==="ISO8601"?i=w.ISO8601_FORMAT:i==="ISO8601_WITH_TZ_OFFSET"?i=w.ISO8601_WITH_TZ_OFFSET_FORMAT:i==="ABSOLUTE"?i=w.ABSOLUTETIME_FORMAT:i==="DATE"&&(i=w.DATETIME_FORMAT)),w.asString(i,n.startTime,this.timezoneOffset)},this.hostname=()=>T.HOSTNAME||"",this.formatMessage=n=>T.formatter(...n.data),this.formatJson=n=>JSON.stringify(n.data),this.endOfLine=()=>T.EOL,this.logLevel=n=>n.level.toString(),this.startTime=n=>w.asString("hh:mm:ss",n.startTime,this.timezoneOffset),this.startColour=n=>{const s=n.level.toString();return U(M[s])},this.endColour=n=>{const s=n.level.toString();return x(M[s])},this.percent=()=>"%",this.pid=n=>n&&n.pid?n.pid.toString():"",this.clusterInfo=(n,s)=>n.cluster&&s?s.replace("%m",n.cluster.master).replace("%w",n.cluster.worker).replace("%i",n.cluster.workerId):n.cluster?`${n.cluster.worker}@${n.cluster.master}`:this.pid(),this.userDefined=(n,s)=>typeof this.tokens[s]<"u"?typeof this.tokens[s]=="function"?this.tokens[s](n):this.tokens[s]:null}build(){return{c:this.categoryName,d:this.formatAsDate,h:this.hostname,m:this.formatMessage,j:this.formatJson,n:this.endOfLine,p:this.logLevel,r:this.startTime,"[":this.startColour,"]":this.endColour,y:this.clusterInfo,z:this.pid,"%":this.percent,x:this.userDefined}}};T.EOL=` `,T.HOSTNAME="",T.formatter=K;let F=T;const ye=new $("default");ye.appenders.set("console",{type:"console",levels:["info","debug","trace","fatal","error","warn"]}),a.PatternLayout.LayoutReplacer=F,b.format=K,a.$log=ye,a.Appender=Q,a.AppendersRegistry=D,a.BaseAppender=A,a.BaseLayout=O,a.LOG_COLORS=M,a.Layout=_,a.LayoutReplacer=F,a.Layouts=g,a.LayoutsRegistry=f,a.LogContext=k,a.LogEvent=ee,a.LogLevel=v,a.Logger=$,a.LoggerAppenders=ve,a.StringUtils=b,a.buildEndLine=fe,a.buildLine=pe,a.buildLineData=q,a.buildStartLine=he,a.charRepeater=E,a.colorize=oe,a.colorizeEnd=x,a.colorizeStart=U,a.drawTable=de,a.format=K,a.levels=S,a.logEventToObject=W,a.pad=ne,a.removeColors=ce,a.timestampLevelAndCategory=J,a.truncate=re,a.truncateAndPad=se,Object.defineProperty(a,Symbol.toStringTag,{value:"Module"})});