UNPKG

@yambwa/pretty-logger

Version:

A lightweight, extensible logger with log levels, pretty and JSON output, context support, and pluggable transports for Node.js and TypeScript projects.

52 lines (51 loc) 1.38 kB
/** * Log levels supported by the logger */ export declare enum LogLevel { Trace = "trace", Debug = "debug", Info = "info", Warn = "warn", Error = "error", Fatal = "fatal" } /** * Numeric representation of log levels for comparison */ export declare const logLevelRanks: Record<LogLevel, number>; /** * Raw log entry object passed to transports */ export interface LogEntry { level: LogLevel; message: string; timestamp: Date; context?: string; meta?: Record<string, any>; } /** * A transport function that receives a log entry and formatted string */ export type Transport = (entry: LogEntry, formatted: string) => void | Promise<void>; /** * Logger configuration options */ export interface LoggerConfig { level?: LogLevel; mode?: 'pretty' | 'json'; context?: string; transports?: Transport[]; } /** * Logger interface */ export interface ILogger { trace(message: string, meta?: Record<string, any>): void; debug(message: string, meta?: Record<string, any>): void; info(message: string, meta?: Record<string, any>): void; warn(message: string, meta?: Record<string, any>): void; error(message: string, meta?: Record<string, any>): void; fatal(message: string, meta?: Record<string, any>): void; setLevel(level: LogLevel): void; withContext(context: string): ILogger; }