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) 5.16 kB
"use strict";var D=Object.create;var h=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var $=Object.getPrototypeOf,_=Object.prototype.hasOwnProperty;var k=(o,e)=>{for(var t in e)h(o,t,{get:e[t],enumerable:!0})},T=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of j(e))!_.call(o,i)&&i!==t&&h(o,i,{get:()=>e[i],enumerable:!(r=w(e,i))||r.enumerable});return o};var U=(o,e,t)=>(t=o!=null?D($(o)):{},T(e||!o||!o.__esModule?h(t,"default",{value:o,enumerable:!0}):t,o)),Y=o=>T(h({},"__esModule",{value:!0}),o),d=(o,e,t,r)=>{for(var i=r>1?void 0:r?w(e,t):e,a=o.length-1,g;a>=0;a--)(g=o[a])&&(i=(r?g(e,t,i):g(i))||i);return r&&i&&h(e,t,i),i},E=(o,e)=>(t,r)=>e(t,r,o);var B={};k(B,{LoggerModule:()=>p});module.exports=Y(B);var c=require("@nestjs/common");var b="x-trace-id",m="nestjs-logitron";var u=m;var M=U(require("pino"));var O=require("async_hooks"),x=new O.AsyncLocalStorage;function W(o,e){x.run({traceId:o},e)}function J(o,e,t,r,...i){let a=new Date().toISOString(),g=x.getStore()?.traceId??"N/A",P=i.find(N=>N&&typeof N=="object")??null,S=r?.name??"N/A",C=typeof r?.time=="number"?`${r.time} ms`:"N/A";return`[${a}] [${o.toUpperCase()}] [${e.toUpperCase()}] [${g}] [${t}] [${P?JSON.stringify(P):"N/A"}] [${S}] [${C}]`}var n=J;var v=class{constructor(e){this.appName=m;this.logger=(0,M.default)({transport:{target:"pino-pretty",options:{ignore:"level"}},base:null,timestamp:!1,...e}),this.appName=e?.appName??m}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=n("info",this.appName,e,void 0,...t);this.logger.info(r)}warn(e,...t){let r=n("warn",this.appName,e,void 0,...t);this.logger.warn(r)}error(e,...t){let r=n("error",this.appName,e,void 0,...t);this.logger.error(r)}debug(e,...t){let r=n("debug",this.appName,e,void 0,...t);this.logger.debug(r)}logWithExecutionTime(e,t,r,...i){let a=(performance.now()-r.start).toFixed(2),g=n(e,this.appName,t,{name:r?.name,time:Number(a)},...i);this.logger[e](g)}};var l=require("winston");var{combine:V,timestamp:q,printf:K,colorize:z}=l.format,L=class{constructor(e){this.appName=m;this.logger=(0,l.createLogger)({transports:[new l.transports.Console],format:V(z({all:!0}),q({format:"YYYY-MM-DDThh:mm:ss"}),K(t=>`[${t.timestamp}] ${t.level}: ${t.message}`)),...e}),this.appName=e?.appName??m}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=n("info",this.appName,e,void 0,...t);this.logger.info(r)}warn(e,...t){let r=n("warn",this.appName,e,void 0,...t);this.logger.warn(r)}error(e,...t){let r=n("error",this.appName,e,void 0,...t);this.logger.error(r)}debug(e,...t){let r=n("debug",this.appName,e,void 0,...t);this.logger.debug(r)}logWithExecutionTime(e,t,r,...i){let a=(performance.now()-r.start).toFixed(2),g=n(e,this.appName,t,{name:r?.name,time:Number(a)},...i);this.logger[e](g)}};var R=require("@nestjs/common");function A({type:o,options:e}){switch(o){case"pino":return new v(e);case"winston":return new L(e);default:throw new Error("Invalid logger type")}}var s=class{constructor(e){this.logger=A(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)}};s=d([(0,R.Injectable)()],s);var F=require("@nestjs/common");var I=class I{static getTraceIdField(){return I.traceIdField}static setTraceIdField(e){I.traceIdField=e}static getTraceId(){return x.getStore()?.traceId??null}};I.traceIdField=b;var f=I;var y=class{use(e,t,r){let i=e?.headers?.[f.getTraceIdField()]??e?.body?.[f.getTraceIdField()]??e?.query?.[f.getTraceIdField()];W(i,()=>r())}};y=d([(0,F.Injectable)()],y);var G=[{path:"*",method:c.RequestMethod.ALL}],p=class{constructor(e){this.params=e}static forRoot(e){return{module:p,providers:[{provide:u,useValue:e??{}},{provide:s,useFactory:r=>new s(r),inject:[u]}],exports:[s]}}static forRootAsync(e){let r=[{provide:u,useFactory:e.useFactory,inject:e.inject},{provide:s,useFactory:async i=>new s(await i),inject:[u]},...e.providers||[]];return{module:p,imports:e.imports,providers:r,exports:[s]}}configure(e){let{forRoutes:t=G,exclude:r}=this.params,i=[y];r?e.apply(...i).exclude(...r).forRoutes(...t):e.apply(...i).forRoutes(...t)}};p=d([(0,c.Global)(),(0,c.Module)({}),E(0,(0,c.Inject)(u))],p);0&&(module.exports={LoggerModule});