UNPKG

nestjs-logitron

Version:

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

2 lines (1 loc) 3.44 kB
var v=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var f=(n,e,t,r)=>{for(var o=r>1?void 0:r?L(e,t):e,s=n.length-1,a;s>=0;s--)(a=n[s])&&(o=(r?a(e,t,o):a(o))||o);return r&&o&&v(e,t,o),o};import N from"pino";import{AsyncLocalStorage as b}from"async_hooks";var l=new b;function I(n,e,t,r,...o){let s=new Date().toISOString(),a=l.getStore()?.traceId??"N/A",d=o.find(c=>c&&typeof c=="object")??null,y=r?.name??"N/A",x=typeof r?.time=="number"?`${r.time} ms`:"N/A";return`[${s}] [${n.toUpperCase()}] [${e.toUpperCase()}] [${a}] [${t}] [${d?JSON.stringify(d):"N/A"}] [${y}] [${x}]`}var i=I;var g="nestjs-logitron";var m=class{constructor(e){this.appName=g;this.logger=N({transport:{target:"pino-pretty",options:{ignore:"level"}},base:null,timestamp:!1,...e}),this.appName=e?.appName??g}infoWithExecutionTime(e,t,...r){this.logWithExecutionTime("info",e,t,...r)}warnWithExecutionTime(e,t,...r){this.logWithExecutionTime("warn",e,t,...r)}errorWithExecutionTime(e,t,...r){this.logWithExecutionTime("error",e,t,...r)}debugWithExecutionTime(e,t,...r){this.logWithExecutionTime("debug",e,t,...r)}info(e,...t){let r=i("info",this.appName,e,void 0,...t);this.logger.info(r)}warn(e,...t){let r=i("warn",this.appName,e,void 0,...t);this.logger.warn(r)}error(e,...t){let r=i("error",this.appName,e,void 0,...t);this.logger.error(r)}debug(e,...t){let r=i("debug",this.appName,e,void 0,...t);this.logger.debug(r)}logWithExecutionTime(e,t,r,...o){let s=(performance.now()-r.start).toFixed(2),a=i(e,this.appName,t,{name:r?.name,time:Number(s)},...o);this.logger[e](a)}};import{createLogger as T,transports as E,format as W}from"winston";var{combine:w,timestamp:O,printf:P,colorize:M}=W,p=class{constructor(e){this.appName=g;this.logger=T({transports:[new E.Console],format:w(M({all:!0}),O({format:"YYYY-MM-DDThh:mm:ss"}),P(t=>`[${t.timestamp}] ${t.level}: ${t.message}`)),...e}),this.appName=e?.appName??g}infoWithExecutionTime(e,t,...r){this.logWithExecutionTime("info",e,t,...r)}warnWithExecutionTime(e,t,...r){this.logWithExecutionTime("warn",e,t,...r)}errorWithExecutionTime(e,t,...r){this.logWithExecutionTime("error",e,t,...r)}debugWithExecutionTime(e,t,...r){this.logWithExecutionTime("debug",e,t,...r)}info(e,...t){let r=i("info",this.appName,e,void 0,...t);this.logger.info(r)}warn(e,...t){let r=i("warn",this.appName,e,void 0,...t);this.logger.warn(r)}error(e,...t){let r=i("error",this.appName,e,void 0,...t);this.logger.error(r)}debug(e,...t){let r=i("debug",this.appName,e,void 0,...t);this.logger.debug(r)}logWithExecutionTime(e,t,r,...o){let s=(performance.now()-r.start).toFixed(2),a=i(e,this.appName,t,{name:r?.name,time:Number(s)},...o);this.logger[e](a)}};import{Injectable as A}from"@nestjs/common";var u=class{constructor(e){this.logger=h(e)}log(e,...t){this.logger.info(e,...t)}info(e,...t){this.logger.info(e,...t)}warn(e,...t){this.logger.warn(e,...t)}error(e,...t){this.logger.error(e,...t)}debug(e,...t){this.logger.debug(e,...t)}infoWithExecutionTime(e,t,...r){this.logger.infoWithExecutionTime(e,t,...r)}warnWithExecutionTime(e,t,...r){this.logger.warnWithExecutionTime(e,t,...r)}errorWithExecutionTime(e,t,...r){this.logger.errorWithExecutionTime(e,t,...r)}debugWithExecutionTime(e,t,...r){this.logger.debugWithExecutionTime(e,t,...r)}};u=f([A()],u);function h({type:n,options:e}){switch(n){case"pino":return new m(e);case"winston":return new p(e);default:throw new Error("Invalid logger type")}}export{h as getLogger};