UNPKG

lib-comfoair

Version:

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

106 lines (105 loc) 3.58 kB
import { LogLevel } from './logLevel'; /** * Interface for log printers. */ export interface ILogPrinter { /** * Print a log message. * @param level - The severity level of the log message. * @param name - The name of the logger. * @param message - The log message. * @param args - Additional arguments to log. */ printLine(level: LogLevel, name: string, message: string, ...args: unknown[]): void; } /** * Abstract base class for log printers. * Provides common functionality for formatting log messages. */ export declare abstract class BasePrinter implements ILogPrinter { /** * Print a log message. * @param level - The severity level of the log message. * @param name - The name of the logger. * @param message - The log message. * @param args - Additional arguments to log. */ printLine(level: LogLevel, name: string, message: string, ...args: unknown[]): void; /** * Output a formatted log message. * @param level - The severity level of the log message. * @param name - The name of the logger. * @param message - The formatted log message. */ protected abstract output(level: LogLevel, name: string, message: string): void; /** * Format a log message. * @param level - The severity level of the log message. * @param name - The name of the logger. * @param message - The log message. * @param args - Additional arguments to log. * @returns The formatted log message. */ protected formatMessage(message: string, ...args: unknown[]): string; } /** * Console printer for logging messages to the console. */ export declare class ConsolePrinter extends BasePrinter { /** * Output a formatted log message to the console. * @param level - The severity level of the log message. * @param name - The name of the logger. * @param message - The formatted log message. */ protected output(level: LogLevel, name: string, message: string): void; } /** * Prints all logging messages using the console.debug function. */ export declare class DebugPrinter extends BasePrinter { /** * Output a formatted log message to the console. * @param level - The severity level of the log message. * @param name - The name of the logger. * @param message - The formatted log message. */ protected output(level: LogLevel, name: string, message: string): void; } /** * File printer for logging messages to a file. */ export declare class FilePrinter extends BasePrinter { private logFilePath; private writeQueue; private fileHandle?; private closeTimeout?; constructor(logFilePath: string); /** * Ensure the log file directory exists. */ private ensureLogFileDirectory; /** * Initialize the file handle for the log file. */ private getFileHandle; /** * Create a log entry string. * @param level - The severity level of the log message. * @param name - The name of the logger. * @param message - The log message. * @returns The formatted log entry string. */ private createLogEntry; /** * Close the file handle after a delay. */ private scheduleClose; /** * Output a formatted log message to a file asynchronously. * @param level - The severity level of the log message. * @param name - The name of the logger. * @param message - The formatted log message. */ protected output(level: LogLevel, name: string, message: string): void; }