UNPKG

logixlysia

Version:

🦊 Logixlysia is a logger for Elysia

86 lines (80 loc) • 2.46 kB
import { Elysia } from "elysia"; //#region \0dts:/home/runner/work/logixlysia/logixlysia/src/interfaces/index.d.ts interface RequestInfo { headers: { get: (key: string) => string | null }; method: string; url: string; } type LogLevel = "DEBUG" | "INFO" | "WARNING" | "ERROR" | string; interface LogData { status?: number; message?: string; context?: Record<string, string | number | boolean | null>; stack?: string; metrics?: { memoryUsage?: number cpuUsage?: number responseSize?: number }; } interface Logger { log(level: LogLevel, request: RequestInfo, data: LogData, store: StoreData): void; handleHttpError(request: RequestInfo, error: HttpError, store: StoreData): void; customLogFormat?: string; } interface StoreData { beforeTime: bigint; } declare class HttpError extends Error { status: number; constructor(status: number, message: string); } type TransportFunction = (level: LogLevel, message: string, meta: { request: RequestInfo data: LogData store: StoreData }) => Promise<void> | void; interface Transport { log: TransportFunction; } interface TimestampConfig { translateTime?: boolean | string; } interface Options { config?: { customLogFormat?: string logFilePath?: string logRotation?: { maxSize?: number maxFiles?: number compress?: boolean } logFilter?: { level?: LogLevel | LogLevel[] method?: string | string[] status?: number | number[] } | null ip?: boolean useColors?: boolean showStartupMessage?: boolean startupMessageFormat?: "banner" | "simple" transports?: Transport[] timestamp?: TimestampConfig }; } //#endregion //#region \0dts:/home/runner/work/logixlysia/logixlysia/src/logger/create-logger.d.ts declare function createLogger(options?: Options): Logger; //#endregion //#region \0dts:/home/runner/work/logixlysia/logixlysia/src/logger/handle-http-error.d.ts declare function handleHttpError(request: RequestInfo, error: HttpError, store: StoreData, options?: Options): void; //#endregion //#region \0dts:/home/runner/work/logixlysia/logixlysia/src/output/console.d.ts declare function logToTransports(level: LogLevel, request: RequestInfo, data: LogData, store: StoreData, options?: Options): Promise<void>; //#endregion //#region \0dts:/home/runner/work/logixlysia/logixlysia/src/index.d.ts declare function logixlysia(options?: Options): Elysia; //#endregion export { createLogger, logixlysia as default, handleHttpError, logToTransports };