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