@anishsharma/betterlogs
Version:
A lightweight yet powerful logging library that makes console output elegant, expressive, and customizable
103 lines (97 loc) • 3.29 kB
text/typescript
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 };