UNPKG

@mter/lazy-logger

Version:

simple console logger insterface to improve performance by lazy string evaluation

51 lines (50 loc) 1.6 kB
"use strict"; /*! * 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();