lib-comfoair
Version:
Library to communicate with Zehnder ComfoAirQ ventilation unit through the ComfoControl gateway
115 lines (114 loc) • 3.71 kB
TypeScript
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;
}