fcr-core
Version:
Core APIs for building online scenes
55 lines (54 loc) • 1.9 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getLogger = exports.generateLogObserver = exports.createLogger = exports.FcrCoreLoggerManagerHolder = void 0;
var _imports = require("../imports");
class FcrCoreLoggerManagerHolder {
static instance = null;
static isDestroying = false;
static label = 'fcr-core';
static initialize(opts) {
if (this.instance && !this.isDestroying) {
console.warn(`${this.label} LoggerManager is already initialized. Reinitializing...`);
}
this.destroy();
this.instance = new _imports.LoggerManager({
label: this.label,
maxSize: opts.maxSize
});
}
static getInstance() {
if (!this.instance) {
throw new Error(`LoggerManager is not initialized. Call ${this.label} LoggerManager.initialize() first.`);
}
return this.instance;
}
static createLogger(opts) {
return this.getInstance().createLogger(opts);
}
static getLogger() {
return this.getInstance().getLogger();
}
static generateLogObserver(logger, callbackMethods) {
return this.getInstance().generateLogObserver(logger, callbackMethods);
}
static destroy() {
if (this.instance && !this.isDestroying) {
this.isDestroying = true;
try {
this.instance.release();
} finally {
this.instance = null;
this.isDestroying = false;
}
}
}
static isInitialized() {
return this.instance !== null;
}
}
exports.FcrCoreLoggerManagerHolder = FcrCoreLoggerManagerHolder;
const getLogger = exports.getLogger = FcrCoreLoggerManagerHolder.getLogger.bind(FcrCoreLoggerManagerHolder);
const createLogger = exports.createLogger = FcrCoreLoggerManagerHolder.createLogger.bind(FcrCoreLoggerManagerHolder);
const generateLogObserver = exports.generateLogObserver = FcrCoreLoggerManagerHolder.generateLogObserver.bind(FcrCoreLoggerManagerHolder);