/** * Default log interface. */ export interface Logger { /** * Logs a message to the logger implementation. * Examples: logger.log('my message', userId, amount); * @param msg the message or object * @param data any extra parameter */ log(msg: string, ...data: any): void; /** * Same verbosity as the `log()` method, but can be silenced. * Logs a message to the logger implementation with DEBUG level. * Examples: logger.debug('my message', userId, amount); * @param msg the message or object * @param data any extra parameter */ debug(msg: string, ...data: any): void; /** * Logs a message to the logger implementation with INFO level. * Examples: logger.info('my message', userId, amount); * @param msg the message or object * @param data any extra parameter */ info(msg: string, ...data: any): void; /** * Logs a message to the logger implementation with WARN level. * Examples: logger.warn('my message', userId, amount); * @param msg the message or object * @param data any extra parameter */ warn(msg: string, ...data: any): void; /** * Logs a message to the logger implementation with ERROR level. * Examples: logger.error('my error message', errorObject); * @param msg the message or object * @param data any extra parameter */ error(msg: string, data?: Error | any): void; /** * Logs a message with the lowest verbosity level (aligns with Winston levels). * Examples: logger.silly('detailed debug info', data); * @param msg the message or object * @param data any extra parameter */ silly(msg: string, ...data: any): void; }