@lsk4/log
Version:
Yet another logger whitch combines the best features of debug, bunyan, logfmt/logrus, morgan/winston
12 lines (10 loc) • 6.44 kB
JavaScript
import { getEnvVar, tryJSONparse } from '@lsk4/env';
import { Err } from '@lsk4/err';
import at from 'fast-safe-stringify';
import { colorize } from '@lsk4/colors';
import yt from 'pretty-bytes';
import bt from 'pretty-time';
var it=Object.defineProperty;var o=(t,r)=>it(t,"name",{value:r,configurable:!0});var R=o((t,r=t)=>{try{if(typeof t!="string")return t;if(!t.trim())return r;throw "!logfmt"}catch{return r}},"tryLogfmtParse");var a;(function(t){t.bunyan="bunyan",t.lsklog="lsklog",t.lsklogweb="lsklogweb",t.logrus="logrus",t.raw="raw";})(a||(a={}));at.default;var m=o((t,r)=>{let e=[];return t!==null&&e.push(tryJSONparse(t)),Object.keys(r).length&&e.push(r),e},"parseArgs");var ut={10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"};var T=o(t=>!!(t.name&&t.hostname&&t.pid&&t.msg&&t.time),"isBunyan"),I=o(t=>{let{level:r,time:e,msg:n,hostname:i,pid:c,v:p,...u}=t;return {format:a.bunyan,meta:{level:ut[r],time:new Date(e)},args:m(n,u)}},"parseBunyan");var mt=["trace","debug","info","warning","error","fatal","panic"],ft={trace:"trace",debug:"debug",info:"info",warning:"warn",error:"error",fatal:"fatal",panic:"fatal"};var L=o(t=>!!(t.msg&&mt.includes(t.level)),"isLogrus"),W=o(t=>{let{level:r,time:e,msg:n,...i}=t;return {format:a.logrus,meta:{level:ft[r],time:new Date(e)},args:m(n,i)}},"parseLogrus");var z=["trace","debug","info","warn","error","fatal"];var N=o(t=>!!(z.includes(t.level)&&t.ns),"isLsklog"),v=o(t=>!!z.includes(t.level),"isLskLikelog"),f=o(t=>!!(t&&(t.name==="req"||t.method&&t.host&&t.url)),"isLsklogWeb"),k=o(t=>!!(f(t)&&(t.status||t.duration||t.length)),"isLsklogWebFinal"),w=o(t=>{let{level:r,time:e,msg:n,ns:i,name:c,...p}=t,u={level:r,time:e,msg:n,ns:i,name:c};if(!f(t))return {format:a.lsklogweb,meta:u,args:m(n,p)};let{reqId:K,method:j,host:q,ua:tt,ip:rt,url:et,status:ot,length:nt,duration:st,...lt}=p;return {format:a.lsklog,meta:{...u,method:j,host:q,reqId:K,ua:tt,ip:rt,url:et,status:ot,duration:st,length:nt},args:m(n,lt)}},"parseLsklog");function gt(t){return T(t)?a.bunyan:N(t)?a.lsklog:f(t)?a.lsklogweb:L(t)&&v(t)&&t?.name?a.lsklog:L(t)?a.logrus:v(t)?a.lsklog:null}o(gt,"detectFormat");function O(t){let r=gt(t);return r==="bunyan"?I(t):r==="lsklogweb"?w(t):r==="lsklog"?w(t):r==="logrus"?W(t):{format:r,meta:{},args:[t]}}o(O,"parse");var F={fatal:["bgRed"],error:["bold","bgRed"],warn:["bgYellow"],debug:["bold","cyan"],info:["bold","green"],trace:["gray"],log:["bgWhite"]},A={fatal:["bold","red"],error:["red"],warn:["yellow"],debug:["cyan"],info:["green"],trace:["gray"],log:["bgWhite"]},S=[["red"],["green"],["yellow"],["blue"],["magenta"],["cyan"],["bold","red"],["bold","green"],["bold","yellow"],["bold","blue"],["bold","magenta"],["bold","cyan"]],E=[["bold","white"],["bold","cyan"],["bold","green"],["white"]];function _(){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(_,"isUnicodeSupported");var x=_();var h=x?"\u2139":"\xD7",P=x?"\u26A0":"\xD7",U=x?"\u2718":"\xD7";var $=x?"\u2573":"\xD7";var G=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"),J=G;function D(t,r){let e=S[J(r||"")%S.length]||[];return colorize(t,e)}o(D,"themeizeRandom");function V(t,r){let e=r?F[r]:[];return colorize(t,e)}o(V,"themeize");function g(t,r){let e=r?A[r]:[];return colorize(t,e)}o(g,"themeizeLight");var Y=getEnvVar("LOG_VIEW","emoji"),d=o((t,r)=>String(t).padStart(r),"leftPad"),Lt=o((t,r)=>String(t).padEnd(r),"rightPad"),M=20,vt=o((t,r=0)=>(M=Math.max(t&&t.length||0,M,r),Lt(t,M)),"prettyPath"),H=o(t=>t>=500?"error":t>=400?"warn":t>=300?"debug":null,"getStatusLevel"),kt=o(t=>{let r=H(t);return r||(r=t!==200?"log":null),g(d(String(t),3),r)},"prettyStatus"),wt=o(t=>d(`#${t}`,3),"prettyReqId"),St=o(t=>{let r=t==="REMOVE"?"error":t==="WS"?"debug":null;return g(d(t,4),r)},"prettyMethod"),Et=o((t,r="")=>{if(!Number.isFinite(t))return null;let e=t>=10*1e3?"error":t>=3*1e3?"warn":null,i=["m","s","ms"].includes(r)?r:"",c=Math.floor(Math.abs(t)*10**6),p=bt(c,i);return g(d(p,5),e)},"prettyTime"),Bt=o((t,r="")=>{if(!Number.isFinite(t))return null;let e=yt(t,{maximumFractionDigits:1}).split(" "),n=e[1].toLowerCase(),i=+e[0]>=100?Math.round(+e[0]):+e[0],c=t>1*1e3*1e3?"error":t>5*1e3?"warn":null,p=c?g(n,c):n;return `${i}${r}${p}`},"prettySize"),Q=o((t,r)=>[...t,r].filter(Boolean).map(String).map(n=>D(n,n)).join(":"),"prettyNs");var C=o((t,r=!0)=>{let e;return Y==="emoji"?(e={fatal:$,error:U,warn:P,info:h,debug:h,trace:h}[t]||" ",(r?" ":"")+g(e,t)):(Y==="short"?(e=(t[0]||"").toLowerCase(),e=`[${e}]`):(e=d(t,5),e=`[${e}]`),V(e,t))},"prettyLevel"),Mt=/\[[^"\]]+]/gm,X=o((...t)=>{let r=[];return t.forEach(e=>{if(typeof e=="string"){let n=0;r.push(e.replace(Mt,i=>colorize(i,E[n++%E.length])));}else r.push(e);}),r},"prettyContent"),Ct=o(t=>{if(!t)return null;let r=typeof t=="string"?t:Err.getCode(t);return r==="err_unknown"?null:r.substr(0,20)},"prettyErr"),Rt=o(t=>{let r=H(t.status);return r||(k(t)?"debug":"trace")},"getUrlLevel"),Z=o(t=>{let r=k(t),e=Rt(t);return [C(e),St(t.method),vt(t.url),wt(t.reqId),r&&t.method!=="WS"?kt(t.status):null,!r&&"\u29D7\u29D6\u29D7",r&&Et(t.duration),r&&t.method!=="WS"?Bt(t.length):null,r&&t.err?Ct(t.err):null].filter(Boolean).join(" ")},"prettyUrl");function Tt(t,r){let e=0;return t.forEach((n,i)=>{i===e&&r(n)&&(e+=1);}),e}o(Tt,"countInRow");function It(...t){let r=Tt(t,e=>typeof e=="string");return [t.slice(0,r).join(" "),...t.slice(r)]}o(It,"concatFirstStrings");function y(t,...r){let e=t?.ns,n=t?.name,i=t?.level||"log",c=r;if(f(t))return [Z(t)];let p=(e||"").split(":").filter(Boolean).map(String),u=[C(i)];return (p.length||n)&&u.push(Q(p,n)),It(...u,...X(...c))}o(y,"prettyFormat");var zt=o((t,r)=>{let e;if(typeof r=="string"&&(!e&&r.trim()&&(e=tryJSONparse(r,null),e!==null&&("json")),!e&&r.trim()&&(e=R(r,null),e!==null&&("logfmt"))),e===null&&(e=null,"raw"),!e){t.log(...y({},r));return}if(typeof e!="object"){t.log(...y({},e));return}let{meta:i,args:c=[]}=O(e);t.log(...y(i,...c));},"prettyRawLog"),ve=zt;
export { ve as default, zt as prettyRawLog };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=prettyRawLog.js.map