UNPKG

@evojs/logger

Version:
42 lines (41 loc) 963 B
import { type Callsite } from '@evojs/callsite'; import { type LogLevel } from './enums'; import { type Log } from './log'; export interface LoggerOptions { /** * Name of the logger. */ name?: string; /** * Output message formats. */ formats?: (string | LogFormatFn)[]; /** * Functions for message formatting. */ pipes?: LogPipes; /** * Output log handler. Set the handler for handle output messages. */ handler?: (log: Log) => void; /** * Output log handler. Set the handler for handle output messages. * @default 'verbose' */ logLevel?: LogLevel; /** * Callsite depth * @default 0 */ callsiteDepth?: number; } export interface LogMessage { date: number; level: LogLevel; name?: string; args: unknown[]; callsite?: Callsite | null; } export type PipeFn = (...args: any[]) => unknown; export type LogPipes = Readonly<Record<string, PipeFn>>; export type LogFormatFn = (this: LogPipes, message: LogMessage) => unknown;