UNPKG

api-stats-logger

Version:

SDK completo de logging e monitoramento de APIs com nova estrutura de logs organizada, auto-instrumentação, dashboard em tempo real e CLI para configuração automática. Suporta logs estruturados por contexto (HTTP, business, security, system) com campos op

122 lines (106 loc) 3.19 kB
declare module 'api-stats-logger' { export interface LoggerOptions { apiKey?: string; url?: string; service?: string; environment?: string; batchSize?: number; flushInterval?: number; enabled?: boolean; maxRetries?: number; retryDelay?: number; captureErrors?: boolean; capturePerformance?: boolean; } export interface LogEntry { level: string; message: string; service?: string; environment?: string; metadata?: Record<string, any>; } export interface LoggerStats { sent: number; failed: number; retries: number; lastFlush: string | null; bufferSize: number; failedBufferSize: number; enabled: boolean; } export interface MiddlewareOptions { logger?: ApiStatsLogger; captureBody?: boolean; captureHeaders?: boolean; captureQuery?: boolean; captureParams?: boolean; skipPaths?: string[]; skipMethods?: string[]; skipRoutes?: string[]; maxBodySize?: number; } export interface AutoInstrumentOptions { autoDetect?: boolean; detectFramework?: boolean; captureHTTP?: boolean; captureDatabase?: boolean; captureErrors?: boolean; captureQueries?: boolean; maxQueryLength?: number; } export class Logger { constructor(options: LoggerOptions); log(entry: LogEntry): void; flush(): Promise<void>; retryFailed(): Promise<void>; getStats(): LoggerStats; disable(): void; enable(): void; close(): Promise<void>; } export class ApiStatsLogger extends Logger { constructor(options?: LoggerOptions); info(message: string, metadata?: Record<string, any>): void; error(message: string, metadata?: Record<string, any>): void; warn(message: string, metadata?: Record<string, any>): void; debug(message: string, metadata?: Record<string, any>): void; static expressMiddleware(options?: MiddlewareOptions): Function; static nestMiddleware(options?: MiddlewareOptions): Function; static fastifyMiddleware(options?: MiddlewareOptions): Function; static koaMiddleware(options?: MiddlewareOptions): Function; static init(options?: LoggerOptions & AutoInstrumentOptions): ApiStatsLogger; } export interface DatabaseMiddleware { mongoose(): void; sequelize(instance: any): void; } export interface MiddlewareManager { express(options?: MiddlewareOptions): Function; nest(options?: MiddlewareOptions): Function; fastify(options?: MiddlewareOptions): Function; koa(options?: MiddlewareOptions): Function; database(options?: { logger: ApiStatsLogger; captureQueries?: boolean; maxQueryLength?: number }): DatabaseMiddleware; } export interface AutoInstrument { setup(logger: ApiStatsLogger, options?: AutoInstrumentOptions): void; } // Framework-specific types export namespace Express { interface Request { requestId?: string; } } export namespace Fastify { interface FastifyRequest { requestId?: string; } } export namespace Koa { interface Context { state: { requestId?: string; }; } } export default ApiStatsLogger; }