logger-tracker-megh-dev
Version:
Log collector and analyzer
45 lines (39 loc) • 1.11 kB
TypeScript
import { NextRequest, NextResponse } from 'next/server';
import React from 'react';
interface LogData {
ip: string;
userAgent: string;
url: string;
event: string;
timestamp: string;
method?: string;
statusCode?: number;
responseTime?: number;
requestBody?: any;
responseBody?: any;
error?: any;
}
interface LogPayload {
log: LogData;
apiKey: string;
}
interface LoggerConfig {
backendUrl: string;
apiKey: string;
enableConsoleLog?: boolean;
customEvents?: string[];
}
declare class Logger {
private static instance;
private config;
private constructor();
static getInstance(config: LoggerConfig): Logger;
private getUserIp;
sendLog(event: Event | string, additionalData?: any): Promise<void>;
}
declare function createLoggerMiddleware(config: {
backendUrl: string;
apiKey: string;
}): (request: NextRequest) => Promise<NextResponse<unknown>>;
declare const LoggerWrapper: React.FC<LoggerConfig>;
export { type LogData, type LogPayload, Logger, type LoggerConfig, LoggerWrapper, createLoggerMiddleware };