import type { Logger } from "@foxxmd/logging"; export class MaybeLogger { logger?: Logger; constructor(logger?: Logger, label?: string) { if (logger !== undefined && label !== undefined) { this.logger = logger;//this.logger = childLogger(logger, label); } else { this.logger = logger; } } public info(first: any, ...rest: any) { if (this.logger) { this.logger.info(first, ...rest); } } public debug(first: any, ...rest: any) { if (this.logger) { this.logger.debug(first, ...rest); } } public trace(first: any, ...rest: any) { if (this.logger) { this.logger.trace(first, ...rest); } } public warn(first: any, ...rest: any) { if (this.logger) { this.logger.warn(first, ...rest); } } public verbose(first: any, ...rest: any) { if (this.logger) { this.logger.verbose(first, ...rest); } } public error(first: any, ...rest: any) { if (this.logger) { this.logger.error(first, ...rest); } } } const noopLog = (_: any, ...rest: any) => undefined; export const loggerNoop: Logger = { trace: noopLog, debug: noopLog, log: noopLog, info: noopLog, verbose: noopLog, warn: noopLog, error: noopLog, fatal: noopLog, silent: noopLog, level: 'silent', child: (_: any, ...rest: any) => loggerNoop as Logger } as unknown as Logger;