@gohighlevel/api-client
Version: 
Official SDK for HighLevel Public APIs
91 lines • 2.77 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = void 0;
const log_level_1 = require("./log-level");
/**
 * Logger class for the GHL SDK
 * Provides level-based logging with configurable verbosity
 */
class Logger {
    /**
     * Create a new Logger instance
     * @param level - Log level (enum or string)
     * @param prefix - Optional prefix for log messages (default: 'GHL SDK')
     */
    constructor(level = log_level_1.LogLevel.WARN, prefix = 'GHL SDK') {
        this.level = typeof level === 'string' ? (0, log_level_1.parseLogLevel)(level) : level;
        this.prefix = prefix;
    }
    /**
     * Log an error message (always includes stack trace if available)
     * @param message - Error message
     * @param args - Additional arguments to log
     */
    error(message, ...args) {
        if (this.level >= log_level_1.LogLevel.ERROR) {
            console.error(`[${this.prefix}] ERROR: ${message}`, ...args);
        }
    }
    /**
     * Log a warning message
     * @param message - Warning message
     * @param args - Additional arguments to log
     */
    warn(message, ...args) {
        if (this.level >= log_level_1.LogLevel.WARN) {
            console.warn(`[${this.prefix}] WARN: ${message}`, ...args);
        }
    }
    /**
     * Log an info message
     * @param message - Info message
     * @param args - Additional arguments to log
     */
    info(message, ...args) {
        if (this.level >= log_level_1.LogLevel.INFO) {
            console.log(`[${this.prefix}] INFO: ${message}`, ...args);
        }
    }
    /**
     * Log a debug message
     * @param message - Debug message
     * @param args - Additional arguments to log
     */
    debug(message, ...args) {
        if (this.level >= log_level_1.LogLevel.DEBUG) {
            console.log(`[${this.prefix}] DEBUG: ${message}`, ...args);
        }
    }
    /**
     * Check if a specific log level is enabled
     * @param level - Log level to check
     * @returns True if the level is enabled
     */
    isLevelEnabled(level) {
        return this.level >= level;
    }
    /**
     * Get the current log level
     * @returns Current log level
     */
    getLevel() {
        return this.level;
    }
    /**
     * Set a new log level
     * @param level - New log level
     */
    setLevel(level) {
        this.level = typeof level === 'string' ? (0, log_level_1.parseLogLevel)(level) : level;
    }
    /**
     * Create a child logger with a different prefix but same level
     * @param prefix - New prefix for the child logger
     * @returns New Logger instance
     */
    child(prefix) {
        return new Logger(this.level, prefix);
    }
}
exports.Logger = Logger;
//# sourceMappingURL=logger.js.map