/* eslint-disable @typescript-eslint/no-explicit-any */ import { LogMonitorLevel, monitorLog } from './logMonitor'; import { LogLevels, logWithPrefix } from './logUtils'; const log = ( level: LogLevels, message: string, monitor: boolean, ...args: any[] ): void => { logWithPrefix(level, message, ...args); if (monitor) { switch (level) { case LogLevels.WARN: monitorLog(LogMonitorLevel.WARN, message, ...args); break; case LogLevels.ERROR: monitorLog(LogMonitorLevel.ERROR, message, ...args); break; } } }; const Logger = { verbose: (message: string, monitor = false, ...args: any[]) => log(LogLevels.VERBOSE, message, monitor, ...args), info: (message: string, monitor = false, ...args: any[]) => log(LogLevels.INFO, message, monitor, ...args), warn: (message: string, monitor = false, ...args: any[]) => log(LogLevels.WARN, message, monitor, ...args), error: (message: string, monitor = true, ...args: any[]) => log(LogLevels.ERROR, message, monitor, ...args), }; export default Logger;