UNPKG

@just-in/core

Version:

A TypeScript-first framework for building adaptive digital health interventions.

86 lines 3.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Log = exports.logLevels = void 0; exports.setLogger = setLogger; exports.setLogLevels = setLogLevels; const console_logger_1 = require("./console.logger"); /** Default logger configuration using ConsoleLogger. */ let activeLogger = console_logger_1.ConsoleLogger; /** Configuration for enabling or disabling specific log levels. */ exports.logLevels = { info: true, warn: true, error: true, dev: true, }; /** * Sets a custom logger to replace the default ConsoleLogger. * If no method is provided by the custom logger, the default ConsoleLogger method will be used. * @param {Partial<Logger>} logger - The custom logger implementation to use. */ function setLogger(logger) { activeLogger = { info: logger.info || console_logger_1.ConsoleLogger.info, warn: logger.warn || console_logger_1.ConsoleLogger.warn, error: logger.error || console_logger_1.ConsoleLogger.error, dev: logger.dev || console_logger_1.ConsoleLogger.dev, }; } /** * Updates the log levels that are enabled or disabled. * Allows selective control over which log levels should be active. * @param {Partial<typeof logLevels>} levels - An object specifying the log levels to enable or disable. * @example * // Enable only error and debug logs * setLogLevels({ info: false, warn: false, error: true, debug: true }); */ function setLogLevels(levels) { Object.assign(exports.logLevels, levels); } /** * Provides a unified logging interface that respects log level configuration. * Each log method will only output if its corresponding log level is enabled. */ exports.Log = { /** * Logs an informational message if `info` logging is enabled. * @param {string} message - The message to log. * @param {...any[]} optionalParams - Additional parameters for the log. */ info(message, ...optionalParams) { if (exports.logLevels.info && activeLogger.info) { activeLogger.info(message, ...optionalParams); } }, /** * Logs a warning message if `warn` logging is enabled. * @param {string} message - The message to log. * @param {...any[]} optionalParams - Additional parameters for the log. */ warn(message, ...optionalParams) { if (exports.logLevels.warn && activeLogger.warn) { activeLogger.warn(message, ...optionalParams); } }, /** * Logs an error message if `error` logging is enabled. * @param {string} message - The message to log. * @param {...any[]} optionalParams - Additional parameters for the log. */ error(message, ...optionalParams) { if (exports.logLevels.error && activeLogger.error) { activeLogger.error(message, ...optionalParams); } }, /** * Logs a message if `dev` logging is enabled and env var NODE_ENV === 'dev'. * @param {string} message - The message to log. * @param {...any[]} optionalParams - Additional parameters for the log. */ dev(message, ...optionalParams) { if (exports.logLevels.dev && activeLogger.dev) { activeLogger.dev(message, ...optionalParams); } } }; //# sourceMappingURL=logger-manager.js.map