UNPKG

@panoptic-it-solutions/unifi-api-client

Version:

A Node.js client library for the UniFi Controller API

61 lines (60 loc) 2.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Logger = exports.LogLevel = void 0; var LogLevel; (function (LogLevel) { LogLevel[LogLevel["NONE"] = 0] = "NONE"; LogLevel[LogLevel["ERROR"] = 1] = "ERROR"; LogLevel[LogLevel["WARN"] = 2] = "WARN"; LogLevel[LogLevel["INFO"] = 3] = "INFO"; LogLevel[LogLevel["DEBUG"] = 4] = "DEBUG"; })(LogLevel || (exports.LogLevel = LogLevel = {})); class Logger { constructor(options = {}) { var _a, _b; this.level = (_a = options.level) !== null && _a !== void 0 ? _a : LogLevel.INFO; this.prefix = (_b = options.prefix) !== null && _b !== void 0 ? _b : 'UniFi-API'; this.customLogger = options.customLogger; } debug(message, ...args) { this.log(LogLevel.DEBUG, message, ...args); } info(message, ...args) { this.log(LogLevel.INFO, message, ...args); } warn(message, ...args) { this.log(LogLevel.WARN, message, ...args); } error(message, ...args) { this.log(LogLevel.ERROR, message, ...args); } setLevel(level) { this.level = level; } log(level, message, ...args) { if (level > this.level) { return; } const formattedMessage = `[${this.prefix}] ${message}`; if (this.customLogger) { const levelName = LogLevel[level].toLowerCase(); this.customLogger(levelName, formattedMessage, ...args); return; } switch (level) { case LogLevel.DEBUG: console.debug(formattedMessage, ...args); break; case LogLevel.INFO: console.info(formattedMessage, ...args); break; case LogLevel.WARN: console.warn(formattedMessage, ...args); break; case LogLevel.ERROR: console.error(formattedMessage, ...args); break; } } } exports.Logger = Logger;