import { Logger } from "./Logger"; import { LogLevel, LogSettings } from "./LogSettings"; /** * @class * Singleton manager for all logger instances in the application. * Provides methods to register, retrieve, and configure loggers. */ export declare class LogManager { /** The singleton instance of LogManager */ private static _instance; /** Map of logger names to logger instances */ private _loggers; private _allLoggers; private _logLevel; private _logSettings; private _logConfiguration; /** * Private constructor to prevent direct instantiation. * Use getInstance() instead. */ private constructor(); get logSettings(): LogSettings; get logLevel(): LogLevel; set logSettings(value: LogSettings); /** * Gets the singleton instance of LogManager. * Creates the instance if it doesn't exist yet. * * @returns {LogManager} The singleton LogManager instance * * @example * const logManager = LogManager.getInstance(); */ static getInstance(): LogManager; /** * Registers a logger with the manager. * * @param {string} name - The name to identify the logger * @param {Logger} logger - The logger instance to register * * @example * const userLogger = new Logger({ source: 'UserService' }); * LogManager.getInstance().registerLogger('UserService', userLogger); */ registerLogger(name: string, logger: Logger): void; /** * Retrieves a logger by name. * * @param {string} name - The name of the logger to retrieve * @returns {Logger | undefined} The logger instance if found, undefined otherwise * * @example * const userLogger = LogManager.getInstance().getLogger('UserService'); * if (userLogger) { * userLogger.info('User service initialized'); * } */ getLogger(name: string): Logger | undefined; /** * Checks if a logger with the given name exists. * * @param {string} name - The name of the logger to check * @returns {boolean} True if the logger exists, false otherwise * * @example * if (LogManager.getInstance().hasLogger('UserService')) { * // Use existing logger * } else { * // Create new logger * } */ hasLogger(name: string): boolean; /** * Sets the log level for all registered loggers. * * @param {LogLevel} logLevel - The log level to set * * @example * // Set all loggers to only show errors in production * if (process.env.NODE_ENV === 'production') { * LogManager.getInstance().setGeneralLogLevel(LogLevel.ERROR); * } */ setGeneralLogLevel(logLevel: LogLevel): void; /** * Sets the log level for any logger that holds a source that starts with the given name * * @param {string} name - The name of the logger * @param {LogLevel} logLevel - The log level to set * * @example * // Enable debug logs for a specific component * LogManager.getInstance().setLogLevel('AuthService', LogLevel.DEBUG); */ setLogLevel(name: string, logLevel: LogLevel): void; /** * Setting the log level for any logger that its name contains the given name parameter * @param name * @param logLevel */ setLogLevelContaining(name: string, logLevel: LogLevel): void; setLogLevelByRegex(regex: RegExp, logLevel: LogLevel): void; getLoggersByRegex(regex: RegExp): Logger[]; /** * Returns all registered loggers. * * @returns {Logger[]} Array of all registered logger instances * * @example * const allLoggers = LogManager.getInstance().getAllLoggers(); * console.log(`Total loggers: ${allLoggers.length}`); */ getAllLoggers(): Logger[]; clearLoggers(): void; clearConfiguration(): void; clearAll(): void; }