logixlysia
Version:
🦊 Logixlysia is a logger for Elysia
29 lines (28 loc) • 1.39 kB
TypeScript
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 TraceContextFields {
span_id?: string;
trace_id?: string;
}
/**
* Injects active OpenTelemetry span IDs into the request context bag when
* `@opentelemetry/api` is installed and a span is active.
*/
declare const injectTraceContext: (logger: Pick<Logger, "mergeContext">, request: Request) => TraceContextFields | undefined;
export { injectTraceContext, injectTraceContext as default, TraceContextFields };