UNPKG

nodejs-logitron

Version:

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

2 lines (1 loc) 3.87 kB
"use strict";var I=Object.create;var u=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,N=Object.prototype.hasOwnProperty;var W=(o,e)=>{for(var t in e)u(o,t,{get:e[t],enumerable:!0})},h=(o,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of O(e))!N.call(o,n)&&n!==t&&u(o,n,{get:()=>e[n],enumerable:!(r=v(e,n))||r.enumerable});return o};var w=(o,e,t)=>(t=o!=null?I(b(o)):{},h(e||!o||!o.__esModule?u(t,"default",{value:o,enumerable:!0}):t,o)),P=o=>h(u({},"__esModule",{value:!0}),o);var G={};W(G,{LoggerService:()=>c,PinoService:()=>p,WinstonService:()=>d});module.exports=P(G);var L=w(require("pino"));var y=require("async_hooks"),x=new y.AsyncLocalStorage;function M(o,e,t,r,...n){let g=new Date().toISOString(),m=x.getStore()?.traceId??"N/A",f=n.find(l=>l&&typeof l=="object")??null,T=r?.name&&typeof r?.time=="number"?`${r.name} ${r.time} ms`:"N/A";return`[${g}] [${o.toUpperCase()}] [${e.toUpperCase()}] [${m}] [${t}] [${f?JSON.stringify(f):"N/A"}] [${T}]`}var i=M;var s="nodejs-logitron";var p=class{constructor(e){this.appName=s;this.logger=(0,L.default)({transport:{target:"pino-pretty",options:{ignore:"level"}},base:null,timestamp:!1,...e}),this.appName=e?.appName??s}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,...n){let g=(performance.now()-r.start).toFixed(2),m=i(e,this.appName,t,{name:r?.name,time:Number(g)},...n);this.logger[e](m)}};var a=require("winston");var{combine:_,timestamp:A,printf:S,colorize:$}=a.format,d=class{constructor(e){this.appName=s;this.logger=(0,a.createLogger)({transports:[new a.transports.Console],format:_($({all:!0}),A({format:"YYYY-MM-DDThh:mm:ss"}),S(t=>`[${t.timestamp}] ${t.level}: ${t.message}`)),...e}),this.appName=e?.appName??s}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,...n){let g=(performance.now()-r.start).toFixed(2),m=i(e,this.appName,t,{name:r?.name,time:Number(g)},...n);this.logger[e](m)}};function E({type:o,options:e}){switch(o){case"pino":return new p(e);case"winston":return new d(e);default:throw new Error("Invalid logger type")}}var c=class{constructor(e={type:"pino"}){this.logger=E(e)}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)}};0&&(module.exports={LoggerService,PinoService,WinstonService});