UNPKG

nodejs-logsage

Version:

Powerful logger module for NestJS, seamlessly integrating Pino and Winston for flexible logging with easy configuration.

2 lines (1 loc) 1.12 kB
import{createLogger as O,transports as d,format as L}from"winston";var T="x-trace-id";var i="EXECUTION_LOG_START_TIME";var c="EXECUTION_LOG_CALLER";var s=class s{static getTraceIdField(){return s.traceId}static setTraceId(o){s.traceId=o}};s.traceId=T;var n=s;function I(...l){let o=n.getTraceIdField(),e=null,f=[],g=null,m=null;for(let t of l.filter(p=>p))t&&typeof t=="object"&&(o in t&&(e=t[o]),i in t&&(g=new Date().getTime()-(typeof t[i]=="number"?t[i]:0)),c in t&&(m=t[c])),Object?.keys(t)?.length&&f.push(t);let r=f.filter(t=>t).map(t=>typeof t=="object"?JSON.stringify(t):t).join(" ");return g!==null&&(r=`[${m?m+": ":""}${g} ms]:${r}`),e&&(r=`[${e}]:${r}`),r}var a=I;var{combine:u,timestamp:_,printf:C,colorize:M}=L,E=class{constructor(o){this.logger=O({transports:[new d.Console],format:u(M({all:!0}),_({format:"YYYY-MM-DDThh:mm:ss"}),C(e=>`[${e.timestamp}] ${e.level}: ${e.message}`)),...o})}info(...o){let e=a(...o);this.logger.info(e)}warn(...o){let e=a(...o);this.logger.warn(e)}error(...o){let e=a(...o);this.logger.error(e)}debug(...o){let e=a(...o);this.logger.debug(e)}};export{E as WinstonService};