@mter/lazy-logger
Version:
simple console logger insterface to improve performance by lazy string evaluation
51 lines (50 loc) • 1.6 kB
JavaScript
;
/*!
* lazy-logger v0.0.1
*
* Copyright (c) 2022 upekshe jay <upekshejay@gmail.com>
* https://github.com/Upekshe/lazy-logger
*
* Licensed under the MIT license.
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.LOGGER = void 0;
const lazy_logger_interface_1 = require("./lazy-logger-interface");
const DEFAULT_LOG_LEVEL = process.env._LOG_LEVEL == null ? lazy_logger_interface_1.LEVEL.TRACE : process.env._LOG_LEVEL;
let LOG_LEVEL = DEFAULT_LOG_LEVEL;
class LazyLogger {
setLogLevel(level) {
if (level < 0 || level > lazy_logger_interface_1.LEVEL.SEVERE) {
throw new Error("Invalid log level");
}
LOG_LEVEL = level;
}
isLogLevelLoggable(level) {
return level >= LOG_LEVEL;
}
trace(provider) {
this.log(lazy_logger_interface_1.LEVEL.TRACE, provider);
}
debug(provider) {
this.log(lazy_logger_interface_1.LEVEL.DEBUG, provider);
}
info(provider) {
this.log(lazy_logger_interface_1.LEVEL.INFO, provider);
}
warn(provider) {
this.log(lazy_logger_interface_1.LEVEL.WARN, provider);
}
error(provider) {
this.log(lazy_logger_interface_1.LEVEL.ERROR, provider);
}
severe(provider) {
this.log(lazy_logger_interface_1.LEVEL.SEVERE, provider);
}
log(level, provider = (level) => []) {
if (this.isLogLevelLoggable(level) !== true) {
return;
}
console.log(...provider(level));
}
}
exports.LOGGER = new LazyLogger();