@villedemontreal/logger
Version:
Logger and logging utilities
46 lines • 1.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.LazyLogger = void 0;
/**
* A Logger wrapper that allows to lazyly create a
* real Logger.
*
* The first time a log is perform, the
* "loggerCreator" will be called to create
* the actual Logger.
*/
class LazyLogger {
constructor(name, loggerCreator) {
this.name = name;
if (!loggerCreator) {
throw new Error(`The Logger Creator is required!`);
}
this.loggerCreator = loggerCreator;
}
debug(messageObj, txtMsg) {
return this.getRealLogger().debug(messageObj, txtMsg);
}
info(messageObj, txtMsg) {
return this.getRealLogger().info(messageObj, txtMsg);
}
warning(messageObj, txtMsg) {
return this.getRealLogger().warning(messageObj, txtMsg);
}
error(messageObj, txtMsg) {
return this.getRealLogger().error(messageObj, txtMsg);
}
log(level, messageObj, txtMsg) {
return this.getRealLogger().log(level, messageObj, txtMsg);
}
getRealLogger() {
if (!this.realLogger) {
this.realLogger = this.loggerCreator(this.name);
if (!this.realLogger) {
throw new Error(`The Logger Creator must create a valid Logger!`);
}
}
return this.realLogger;
}
}
exports.LazyLogger = LazyLogger;
//# sourceMappingURL=lazyLogger.js.map