@panoptic-it-solutions/unifi-api-client
Version:
A Node.js client library for the UniFi Controller API
61 lines (60 loc) • 2.02 kB
JavaScript
;
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;