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) 1.69 kB
"use strict";var J=Object.create;var l=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var k=Object.getOwnPropertyNames;var M=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var j=(e,t)=>{for(var a in t)l(e,a,{get:t[a],enumerable:!0})},A=(e,t,a,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of k(t))!$.call(e,o)&&o!==a&&l(e,o,{get:()=>t[o],enumerable:!(n=O(t,o))||n.enumerable});return e};var I=(e,t,a)=>(a=e!=null?J(M(e)):{},A(t||!e||!e.__esModule?l(a,"default",{value:e,enumerable:!0}):a,e)),q=e=>A(l({},"__esModule",{value:!0}),e);var B={};j(B,{parseLogFile:()=>z});module.exports=q(B);var p=I(require("fs")),R=I(require("readline"));async function z(e){let{logFilePath:t,page:a,limit:n,logRegex:o=/^\[(.*?)\] \[(.*?)\] \[(.*?)\] \[(.*?)\] \[(.*?)\] \[(.*?)\] \[(.*?)\] \[(.*?)\]$/,level:u,traceId:f,appName:d,message:w,execution:L,searchPayload:y}=e;if(!p.default.existsSync(t))throw new Error("File not found");let F=p.default.createReadStream(t,"utf-8"),T=R.default.createInterface({input:F,crlfDelay:1/0}),h=[],r=0,x=(a-1)*n,b=x+n;for await(let m of T){let i=m.match(o);if(!i)continue;let[,D,N,C,s,P,c,g]=i,E=N?N.toLowerCase():"unknown",S=c&&c!=="N/A"?JSON.parse(c):"",v=g&&g!=="N/A"?g:"";u&&E!==u.toLowerCase()||f&&s!==f||d&&C?.toLowerCase()!==d.toLowerCase()||w&&!P?.toLowerCase().includes(w.toLowerCase())||L&&v!==L||y&&c!=="N/A"&&!JSON.stringify(S).toLowerCase().includes(y.toLowerCase())||(r>=x&&r<b&&h.push({id:s&&s.length>0?s:"N/A",timestamp:D,level:E,appName:C,message:P,payload:S,execution:v}),r++)}return{total:r,data:h.sort((m,i)=>new Date(i.timestamp).getTime()-new Date(m.timestamp).getTime())}}0&&(module.exports={parseLogFile});