nodejs-logsage
Version:
Powerful logger module for NestJS, seamlessly integrating Pino and Winston for flexible logging with easy configuration.
2 lines (1 loc) • 1.03 kB
JavaScript
import d from"pino";import{format as L}from"date-fns";var T="x-trace-id";var a="EXECUTION_LOG_START_TIME";var f="EXECUTION_LOG_CALLER";var i=class i{static getTraceIdField(){return i.traceId}static setTraceId(e){i.traceId=e}};i.traceId=T;var n=i;function I(...c){let e=n.getTraceIdField(),o=null,l=[],g=null,m=null;for(let t of c.filter(p=>p))t&&typeof t=="object"&&(e in t&&(o=t[e]),a in t&&(g=new Date().getTime()-(typeof t[a]=="number"?t[a]:0)),f in t&&(m=t[f])),Object?.keys(t)?.length&&l.push(t);let r=l.filter(t=>t).map(t=>typeof t=="object"?JSON.stringify(t):t).join(" ");return g!==null&&(r=`[${m?m+": ":""}${g} ms]:${r}`),o&&(r=`[${o}]:${r}`),r}var s=I;var E=class{constructor(e){this.logger=d({transport:{target:"pino-pretty"},base:{pid:!1},timestamp:()=>`,"time":"${L(new Date,"yyyy-MM-dd'T'HH:mm:ss")}"`,...e})}info(...e){let o=s(...e);this.logger.info(o)}warn(...e){let o=s(...e);this.logger.warn(o)}error(...e){let o=s(...e);this.logger.error(o)}debug(...e){let o=s(...e);this.logger.debug(o)}};export{E as PinoService};