UNPKG

lib-comfoair

Version:

Library to communicate with Zehnder ComfoAirQ ventilation unit through the ComfoControl gateway

115 lines (114 loc) 3.71 kB
import { LogLevel } from './logLevel'; import { DebugPrinter, ILogPrinter } from './logPrinter'; /** * Logger class for managing log messages. * Supports hierarchical loggers and multiple log printers. */ export declare class Logger { private name; private readonly parent; private readonly printers; private readonly children; private severity; private static root; /** * Get the root logger in the hierarchy. * @returns The root logger. */ static getRoot(): Logger; /** * Create a new logger instance. * @param name Name of the logger * @param severity Severity of messages to write * @returns */ static create(name: string, severity?: LogLevel): Logger; /** * Initialize the root logger with the given configuration. Can only be called once per session. * @example * ```typescript * Logger.start({ * name: 'comfo-connect', * level: LogLevel.DEBUG, * printers: [ new FilePrinter('./comfo.log'), ConsolePrinter() ] * }); * @param options - The configuration options for the root logger. */ static start({ /** * The name of the root logger. */ name, /** * The log level for the root logger. */ level, /** * The printers used to output log messages; defaults to a DebugPrinter. */ printers, }: { name?: string | undefined; level?: LogLevel | undefined; printers?: DebugPrinter[] | undefined; }): void; /** * Create a new Logger instance. * @param name - The name of the logger. * @param parent - The parent logger, if any. * @param severity - The severity level for the logger. Defaults to LogLevel.DEFAULT. */ constructor(name: string, severity?: LogLevel, parent?: Logger); setLogLevel(severity: LogLevel): Logger; enableLogLevel(severity: LogLevel): Logger; disableLogLevel(severity: LogLevel): Logger; setName(name: string): Logger; /** * Add a printer to the logger. * @param printer - The printer to add. */ addPrinter(printer: ILogPrinter): Logger; /** * Create a child logger. * @param name - The name of the child logger. * @param severity - The severity level for the child logger. Defaults to the parent's severity level. * @returns The created child logger. */ createLogger(name: string, severity?: LogLevel): Logger; /** * Log a message with a specific severity level. * @param level - The severity level of the log message. * @param message - The log message. * @param args - Additional arguments to log. */ log(level: LogLevel, message: string, ...args: unknown[]): void; /** * Log an info message. * @param message - The log message. * @param args - Additional arguments to log. */ info(message: string, ...args: unknown[]): void; /** * Log a verbose message. * @param message - The log message. * @param args - Additional arguments to log. */ verbose(message: string, ...args: unknown[]): void; /** * Log a debug message. * @param message - The log message. * @param args - Additional arguments to log. */ debug(message: string, ...args: unknown[]): void; /** * Log a warning message. * @param message - The log message. * @param args - Additional arguments to log. */ warn(message: string, ...args: unknown[]): void; /** * Log an error message. * @param message - The log message. * @param args - Additional arguments to log. */ error(message: string, ...args: unknown[]): void; }