@toreda/log
Version:
Lightweight TypeScript logger with flexible custom transports.
45 lines (44 loc) • 1.87 kB
JavaScript
;
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;