UNPKG

@arizeai/phoenix-client

Version:
63 lines 2.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.noopLogger = void 0; exports.createLogger = createLogger; const phoenix_config_1 = require("@arizeai/phoenix-config"); /** * A logger that does nothing */ exports.noopLogger = { info: () => undefined, warn: () => undefined, error: () => undefined, log: () => undefined, debug: () => undefined, table: () => undefined, }; const VALID_LOG_LEVELS = [ "debug", "info", "warn", "error", "silent", ]; function isLogLevel(value) { return VALID_LOG_LEVELS.includes(value); } function getLogLevelFromEnvironment() { const value = (0, phoenix_config_1.getStrFromEnvironment)(phoenix_config_1.ENV_PHOENIX_LOG_LEVEL); if (value && isLogLevel(value)) { return value; } return "info"; } /** * Creates a logger with the given log level, optionally wrapping a custom logger. * If no level is provided, reads PHOENIX_LOG_LEVEL from the environment, defaulting to "info". * If a custom logger is provided, it is used as the underlying output target instead of console. * * Log level hierarchy (lowest to highest): debug < info < warn < error < silent * Messages below the configured level are suppressed. * * @example * const logger = createLogger(); // uses PHOENIX_LOG_LEVEL env var, defaults to "info" * const logger = createLogger({ level: "debug" }); // show all messages including progress * const logger = createLogger({ level: "silent" }); // suppress all output * const logger = createLogger({ logger: myWinstonLogger }); // wrap a custom logger * const logger = createLogger({ level: "warn", logger: myWinstonLogger }); // custom + level filter */ function createLogger({ level, logger, } = {}) { const resolvedLevel = level !== null && level !== void 0 ? level : getLogLevelFromEnvironment(); const levelIndex = VALID_LOG_LEVELS.indexOf(resolvedLevel); const shouldLog = (l) => VALID_LOG_LEVELS.indexOf(l) >= levelIndex; const base = logger !== null && logger !== void 0 ? logger : console; return { debug: shouldLog("debug") ? (msg) => base.debug(msg) : () => undefined, info: shouldLog("info") ? (msg) => base.info(msg) : () => undefined, warn: shouldLog("warn") ? (msg) => base.warn(msg) : () => undefined, error: shouldLog("error") ? (msg) => base.error(msg) : () => undefined, log: shouldLog("info") ? (msg) => base.log(msg) : () => undefined, table: shouldLog("info") ? (data) => base.table(data) : () => undefined, }; } //# sourceMappingURL=logger.js.map