UNPKG

@lsk4/log

Version:

Yet another logger whitch combines the best features of debug, bunyan, logfmt/logrus, morgan/winston

23 lines (17 loc) 6.84 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var env = require('@lsk4/env'); var err = require('@lsk4/err'); var it = require('fast-safe-stringify'); var colors = require('@lsk4/colors'); var ht = require('pretty-bytes'); var yt = require('pretty-time'); function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; } var it__default = /*#__PURE__*/_interopDefault(it); var ht__default = /*#__PURE__*/_interopDefault(ht); var yt__default = /*#__PURE__*/_interopDefault(yt); var lt=Object.defineProperty;var o=(t,r)=>lt(t,"name",{value:r,configurable:!0});var C=o((t,r=t)=>{try{if(typeof t!="string")return t;if(!t.trim())return r;throw "!logfmt"}catch{return r}},"tryLogfmtParse");var i;(function(t){t.bunyan="bunyan",t.lsklog="lsklog",t.lsklogweb="lsklogweb",t.logrus="logrus",t.raw="raw";})(i||(i={}));it__default.default.default;var u=o((t,r)=>{let e=[];return t!==null&&e.push(env.tryJSONparse(t)),Object.keys(r).length&&e.push(r),e},"parseArgs");var pt={10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"};var R=o(t=>!!(t.name&&t.hostname&&t.pid&&t.msg&&t.time),"isBunyan"),T=o(t=>{let{level:r,time:e,msg:n,hostname:l,pid:a,v:c,...p}=t;return {format:i.bunyan,meta:{level:pt[r],time:new Date(e)},args:u(n,p)}},"parseBunyan");var ut=["trace","debug","info","warning","error","fatal","panic"],mt={trace:"trace",debug:"debug",info:"info",warning:"warn",error:"error",fatal:"fatal",panic:"fatal"};var b=o(t=>!!(t.msg&&ut.includes(t.level)),"isLogrus"),I=o(t=>{let{level:r,time:e,msg:n,...l}=t;return {format:i.logrus,meta:{level:mt[r],time:new Date(e)},args:u(n,l)}},"parseLogrus");var W=["trace","debug","info","warn","error","fatal"];var z=o(t=>!!(W.includes(t.level)&&t.ns),"isLsklog"),L=o(t=>!!W.includes(t.level),"isLskLikelog"),m=o(t=>!!(t&&(t.name==="req"||t.method&&t.host&&t.url)),"isLsklogWeb"),v=o(t=>!!(m(t)&&(t.status||t.duration||t.length)),"isLsklogWebFinal"),k=o(t=>{let{level:r,time:e,msg:n,ns:l,name:a,...c}=t,p={level:r,time:e,msg:n,ns:l,name:a};if(!m(t))return {format:i.lsklogweb,meta:p,args:u(n,c)};let{reqId:Z,method:K,host:j,ua:q,ip:tt,url:rt,status:et,length:ot,duration:nt,...st}=c;return {format:i.lsklog,meta:{...p,method:K,host:j,reqId:Z,ua:q,ip:tt,url:rt,status:et,duration:nt,length:ot},args:u(n,st)}},"parseLsklog");function ft(t){return R(t)?i.bunyan:z(t)?i.lsklog:m(t)?i.lsklogweb:b(t)&&L(t)&&t?.name?i.lsklog:b(t)?i.logrus:L(t)?i.lsklog:null}o(ft,"detectFormat");function N(t){let r=ft(t);return r==="bunyan"?T(t):r==="lsklogweb"?k(t):r==="lsklog"?k(t):r==="logrus"?I(t):{format:r,meta:{},args:[t]}}o(N,"parse");var O={fatal:["bgRed"],error:["bold","bgRed"],warn:["bgYellow"],debug:["bold","cyan"],info:["bold","green"],trace:["gray"],log:["bgWhite"]},F={fatal:["bold","red"],error:["red"],warn:["yellow"],debug:["cyan"],info:["green"],trace:["gray"],log:["bgWhite"]},w=[["red"],["green"],["yellow"],["blue"],["magenta"],["cyan"],["bold","red"],["bold","green"],["bold","yellow"],["bold","blue"],["bold","magenta"],["bold","cyan"]],S=[["bold","white"],["bold","cyan"],["bold","green"],["white"]];function A(){let t=typeof process<"u"?process:{};return t?.platform!=="win32"?t?.env?.TERM!=="linux":!!t?.env?.WT_SESSION||!!t?.env?.TERMINUS_SUBLIME||t?.env?.ConEmuTask==="{cmd::Cmder}"||t?.env?.TERM_PROGRAM==="Terminus-Sublime"||t?.env?.TERM_PROGRAM==="vscode"||t?.env?.TERM==="xterm-256color"||t?.env?.TERM==="alacritty"||t?.env?.TERMINAL_EMULATOR==="JetBrains-JediTerm"}o(A,"isUnicodeSupported");var d=A();var x=d?"\u2139":"\xD7",_=d?"\u26A0":"\xD7",P=d?"\u2718":"\xD7";var U=d?"\u2573":"\xD7";var $=o(t=>typeof t=="number"?t:Math.abs(String(t).split("").reduce((r,e)=>{let n=(r<<5)-r+e.charCodeAt(0);return n&n},0)-48),"hashCode"),G=$;function J(t,r){let e=w[G(r||"")%w.length]||[];return colors.colorize(t,e)}o(J,"themeizeRandom");function D(t,r){let e=r?O[r]:[];return colors.colorize(t,e)}o(D,"themeize");function f(t,r){let e=r?F[r]:[];return colors.colorize(t,e)}o(f,"themeizeLight");var V=env.getEnvVar("LOG_VIEW","emoji"),g=o((t,r)=>String(t).padStart(r),"leftPad"),bt=o((t,r)=>String(t).padEnd(r),"rightPad"),B=20,Lt=o((t,r=0)=>(B=Math.max(t&&t.length||0,B,r),bt(t,B)),"prettyPath"),Y=o(t=>t>=500?"error":t>=400?"warn":t>=300?"debug":null,"getStatusLevel"),vt=o(t=>{let r=Y(t);return r||(r=t!==200?"log":null),f(g(String(t),3),r)},"prettyStatus"),kt=o(t=>g(`#${t}`,3),"prettyReqId"),wt=o(t=>{let r=t==="REMOVE"?"error":t==="WS"?"debug":null;return f(g(t,4),r)},"prettyMethod"),St=o((t,r="")=>{if(!Number.isFinite(t))return null;let e=t>=10*1e3?"error":t>=3*1e3?"warn":null,l=["m","s","ms"].includes(r)?r:"",a=Math.floor(Math.abs(t)*10**6),c=yt__default.default(a,l);return f(g(c,5),e)},"prettyTime"),Et=o((t,r="")=>{if(!Number.isFinite(t))return null;let e=ht__default.default(t,{maximumFractionDigits:1}).split(" "),n=e[1].toLowerCase(),l=+e[0]>=100?Math.round(+e[0]):+e[0],a=t>1*1e3*1e3?"error":t>5*1e3?"warn":null,c=a?f(n,a):n;return `${l}${r}${c}`},"prettySize"),H=o((t,r)=>[...t,r].filter(Boolean).map(String).map(n=>J(n,n)).join(":"),"prettyNs");var M=o((t,r=!0)=>{let e;return V==="emoji"?(e={fatal:U,error:P,warn:_,info:x,debug:x,trace:x}[t]||" ",(r?" ":"")+f(e,t)):(V==="short"?(e=(t[0]||"").toLowerCase(),e=`[${e}]`):(e=g(t,5),e=`[${e}]`),D(e,t))},"prettyLevel"),Bt=/\[[^"\]]+]/gm,Q=o((...t)=>{let r=[];return t.forEach(e=>{if(typeof e=="string"){let n=0;r.push(e.replace(Bt,l=>colors.colorize(l,S[n++%S.length])));}else r.push(e);}),r},"prettyContent"),Mt=o(t=>{if(!t)return null;let r=typeof t=="string"?t:err.Err.getCode(t);return r==="err_unknown"?null:r.substr(0,20)},"prettyErr"),Ct=o(t=>{let r=Y(t.status);return r||(v(t)?"debug":"trace")},"getUrlLevel"),X=o(t=>{let r=v(t),e=Ct(t);return [M(e),wt(t.method),Lt(t.url),kt(t.reqId),r&&t.method!=="WS"?vt(t.status):null,!r&&"\u29D7\u29D6\u29D7",r&&St(t.duration),r&&t.method!=="WS"?Et(t.length):null,r&&t.err?Mt(t.err):null].filter(Boolean).join(" ")},"prettyUrl");function Rt(t,r){let e=0;return t.forEach((n,l)=>{l===e&&r(n)&&(e+=1);}),e}o(Rt,"countInRow");function Tt(...t){let r=Rt(t,e=>typeof e=="string");return [t.slice(0,r).join(" "),...t.slice(r)]}o(Tt,"concatFirstStrings");function h(t,...r){let e=t?.ns,n=t?.name,l=t?.level||"log",a=r;if(m(t))return [X(t)];let c=(e||"").split(":").filter(Boolean).map(String),p=[M(l)];return (c.length||n)&&p.push(H(c,n)),Tt(...p,...Q(...a))}o(h,"prettyFormat");var Wt=o((t,r)=>{let e;if(typeof r=="string"&&(!e&&r.trim()&&(e=env.tryJSONparse(r,null),e!==null&&("json")),!e&&r.trim()&&(e=C(r,null),e!==null&&("logfmt"))),e===null&&(e=null,"raw"),!e){t.log(...h({},r));return}if(typeof e!="object"){t.log(...h({},e));return}let{meta:l,args:a=[]}=N(e);t.log(...h(l,...a));},"prettyRawLog"),Le=Wt; exports.default = Le; exports.prettyRawLog = Wt; //# sourceMappingURL=out.js.map //# sourceMappingURL=prettyRawLog.js.map