UNPKG

@anishsharma/betterlogs

Version:

A lightweight yet powerful logging library that makes console output elegant, expressive, and customizable

103 lines (97 loc) 3.29 kB
interface LogLevelConfig { color: string; emoji: string; bgColor?: string; } interface Theme { name: string; levels: { info: LogLevelConfig; success: LogLevelConfig; warn: LogLevelConfig; error: LogLevelConfig; debug: LogLevelConfig; [key: string]: LogLevelConfig; }; background?: string; } interface BetterLogsConfig { showTimestamp: boolean; showEmoji: boolean; theme: string | Theme; level: LogLevel; mode: "pretty" | "json"; file?: string; timestampFormat: "12h" | "24h"; } type LogLevel = "debug" | "info" | "success" | "warn" | "error" | "silent"; declare class ThemeManager { private themes; constructor(); registerTheme(theme: Theme): void; getTheme(name: string): Theme | undefined; getDefaultTheme(): Theme; } declare class ConfigManager { private config; private themeManager; constructor(themeManager: ThemeManager); updateConfig(newConfig: Partial<BetterLogsConfig>): void; getConfig(): BetterLogsConfig; getCurrentTheme(): Theme; shouldLog(level: LogLevel): boolean; } declare class BetterLogger { private configManager; private themeManager; private fileLogger?; private labels; private customLevels; private activeTimers; private label?; constructor(configManager: ConfigManager, themeManager: ThemeManager, label?: string); info(message: string, ...data: unknown[]): void; success(message: string, ...data: unknown[]): void; warn(message: string, ...data: unknown[]): void; error(message: string, ...data: unknown[]): void; debug(message: string, ...data: unknown[]): void; withLabel(labelName: string): BetterLogger; config(newConfig: Partial<BetterLogsConfig>): void; setLevel(level: LogLevel): void; setMode(mode: "pretty" | "json"): void; addLevel(name: string, config: { color: string; emoji: string; }): void; group(name: string): BetterLogger; table(data: unknown[] | object): void; time(label: string): void; timeEnd(label: string): void; file(filePath: string): void; private log; private outputToConsole; private getConsoleMethod; } declare const betterlogs: { info: (message: string, ...data: unknown[]) => void; success: (message: string, ...data: unknown[]) => void; warn: (message: string, ...data: unknown[]) => void; error: (message: string, ...data: unknown[]) => void; debug: (message: string, ...data: unknown[]) => void; label: (labelName: string) => BetterLogger; config: (newConfig: Partial<BetterLogsConfig>) => void; setLevel: (level: string) => void; setMode: (mode: "pretty" | "json") => void; addLevel: (name: string, config: { color: string; emoji: string; }) => void; group: (name: string) => BetterLogger; table: (data: unknown[] | object) => void; time: (label: string) => void; timeEnd: (label: string) => void; file: (filePath: string) => void; addTheme: (theme: Theme) => void; create: (config?: Partial<BetterLogsConfig>) => BetterLogger; }; export { BetterLogger, type BetterLogsConfig, ConfigManager, type Theme, ThemeManager, betterlogs, betterlogs as default };