UNPKG

@toreda/log

Version:

Lightweight TypeScript logger with flexible custom transports.

45 lines (44 loc) 1.87 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LogStateGlobal = void 0; const levels_1 = require("../../levels"); const level_1 = require("../level"); const transport_1 = require("../../transport"); const level_2 = require("../../check/level"); /** * Internal state data, settings, and log groups for a * single log instance. * * @category State */ class LogStateGlobal { constructor(options = {}) { var _a; // Check whether groups should start enabled or disabled. // Disabled groups do not process logs, even if the group log level // or global log level would otherwise allow it. this.groupsStartEnabled = options.groupsStartEnabled === false ? false : true; // Starting Global log level const defaultLevel = levels_1.Levels.ALL & ~levels_1.Levels.DEBUG & ~levels_1.Levels.TRACE; const logLevel = (0, level_2.checkLevel)(options.globalLevel) ? options.globalLevel : defaultLevel; this.globalLevel = new level_1.LogLevel(logLevel); // Whether console output is enabled by default. If disabled, // the built-in console transport can be activated at any time. this.consoleEnabled = options.consoleEnabled === true ? true : false; this.forceEnabled = false; this.forceDisabled = false; this.groups = new Map(); this.transports = []; for (const transportData of (_a = options.startingTransports) !== null && _a !== void 0 ? _a : []) { let transport; if (transportData instanceof transport_1.Transport) { transport = transportData; } else { transport = new transport_1.Transport(transportData); } this.transports.push(transport); } } } exports.LogStateGlobal = LogStateGlobal;