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