nestjs-logitron
Version:
Powerful logger module for Nodejs/ Nestjs, seamlessly integrating Pino and Winston for flexible logging with easy configuration.
2 lines (1 loc) • 2.17 kB
JavaScript
var _=Object.create;var p=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var K=Object.getOwnPropertyNames;var V=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var z=(t,e)=>{for(var o in e)p(t,o,{get:e[o],enumerable:!0})},O=(t,e,o,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of K(e))!q.call(t,r)&&r!==o&&p(t,r,{get:()=>e[r],enumerable:!(a=U(e,r))||a.enumerable});return t};var R=(t,e,o)=>(o=t!=null?_(V(t)):{},O(e||!t||!t.__esModule?p(o,"default",{value:t,enumerable:!0}):o,t)),B=t=>O(p({},"__esModule",{value:!0}),t);var X={};z(X,{PARAMS_PROVIDER_TOKEN:()=>W,TraceIdHandler:()=>f,asyncLocalStorage:()=>n,parseLogFile:()=>Q,withTraceId:()=>G});module.exports=B(X);var T=require("async_hooks"),n=new T.AsyncLocalStorage;function G(t,e){n.run({traceId:t},e)}var v="x-trace-id",$="nestjs-logitron";var i=class i{static getTraceIdField(){return i.traceIdField}static setTraceIdField(e){i.traceIdField=e}static getTraceId(){return n.getStore()?.traceId??null}};i.traceIdField=v;var f=i;var u=R(require("fs")),D=R(require("readline"));async function Q(t){let{logFilePath:e,page:o,limit:a,logRegex:r=/^\[(.*?)\] \[(.*?)\] \[(.*?)\] \[(.*?)\] \[(.*?)\] \[(.*?)\] \[(.*?)\] \[(.*?)\]$/,level:y,traceId:x,appName:L,message:I,execution:w,searchPayload:P}=t;if(!u.default.existsSync(e))throw new Error("File not found");let b=u.default.createReadStream(e,"utf-8"),j=D.default.createInterface({input:b,crlfDelay:1/0}),A=[],s=0,N=(o-1)*a,k=N+a;for await(let l of j){let c=l.match(r);if(!c)continue;let[,J,S,C,g,M,m,d]=c,h=S?S.toLowerCase():"unknown",E=m&&m!=="N/A"?JSON.parse(m):"",F=d&&d!=="N/A"?d:"";y&&h!==y.toLowerCase()||x&&g!==x||L&&C?.toLowerCase()!==L.toLowerCase()||I&&!M?.toLowerCase().includes(I.toLowerCase())||w&&F!==w||P&&m!=="N/A"&&!JSON.stringify(E).toLowerCase().includes(P.toLowerCase())||(s>=N&&s<k&&A.push({id:g&&g.length>0?g:"N/A",timestamp:J,level:h,appName:C,message:M,payload:E,execution:F}),s++)}return{total:s,data:A.sort((l,c)=>new Date(c.timestamp).getTime()-new Date(l.timestamp).getTime())}}var W=$;0&&(module.exports={PARAMS_PROVIDER_TOKEN,TraceIdHandler,asyncLocalStorage,parseLogFile,withTraceId});
;