UNPKG

logixlysia

Version:

🦊 Logixlysia is a logger for Elysia

38 lines (37 loc) • 1.56 kB
import { Logger as PinoLogger } from "pino"; type Pino = PinoLogger<never, boolean>; type RequestInfo = Request; type LogLevel = "DEBUG" | "INFO" | "WARNING" | "ERROR"; interface StoreData { beforeTime: bigint; } interface Logger { debug: (request: RequestInfo, message: string, context?: Record<string, unknown>) => void; error: (request: RequestInfo, message: string, context?: Record<string, unknown>) => void; getContext: (key: RequestInfo | object) => Readonly<Record<string, unknown>>; handleHttpError: (request: RequestInfo, error: unknown, store: StoreData) => void; info: (request: RequestInfo, message: string, context?: Record<string, unknown>) => void; log: (level: LogLevel, request: RequestInfo, data: Record<string, unknown>, store: StoreData) => void; mergeContext: (key: RequestInfo | object, partial: Record<string, unknown>) => void; pino: Pino; warn: (request: RequestInfo, message: string, context?: Record<string, unknown>) => void; } interface AIMetrics { calls?: number; finishReason?: string; inputTokens?: number; model?: string; msToFinish?: number; msToFirstChunk?: number; outputTokens?: number; provider?: string; reasoningTokens?: number; tokensPerSecond?: number; totalTokens?: number; } /** * Merges AI SDK / LLM usage metrics into the request context bag so they appear * on the final access log (evlog-style `ai` object). */ declare const mergeAIMetrics: (logger: Pick<Logger, "mergeContext">, request: Request, metrics: AIMetrics) => void; export { mergeAIMetrics, mergeAIMetrics as default, AIMetrics };