UNPKG

@litert/logger

Version:

A logs-recorder for LiteRT framework.

77 lines 2.69 kB
"use strict"; /** * Copyright 2025 Angus ZENG <fenying@litert.org> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.createLoggerFactory = createLoggerFactory; exports.getDefaultLoggerFactory = getDefaultLoggerFactory; const dL = require("./Decl"); const Logger_1 = require("./Logger"); const Console_1 = require("./Drivers/Console"); const Formatters_1 = require("./Formatters"); class LoggerFactory { constructor(driver, levels, formatter) { this.levels = levels; this._lvOpts = {}; for (const lv of levels) { this._lvOpts[lv] = { enabled: true, traceDepth: 0, driver, formatter }; } } setLevelOptions(options) { const levels = options.levels?.length ? Array.isArray(options.levels) ? options.levels : [options.levels] : this.levels; for (const lv of levels) { if (!this.levels.includes(lv)) { continue; } this._lvOpts[lv] = { 'traceDepth': Math.max(0, options.traceDepth ?? this._lvOpts[lv]?.traceDepth ?? 0), 'enabled': options.enabled ?? this._lvOpts[lv]?.enabled ?? true, 'driver': options.driver ?? this._lvOpts[lv].driver, 'formatter': options.formatter ?? this._lvOpts[lv].formatter }; } return this; } getLevelOptions(level) { return this._lvOpts[level]; } createLogger(subject) { return new Logger_1.Logger(subject, this._lvOpts, this.levels); } } /** * Create a new factory object. */ function createLoggerFactory(levels = dL.DEFAULT_LEVELS, driver = (0, Console_1.createConsoleDriver)(), formatter = Formatters_1.DEFAULT_TEXT_FORMATTER) { return new LoggerFactory(driver, levels, formatter); } /** * The default factory object. */ const factory = createLoggerFactory(dL.DEFAULT_LEVELS); /** * Get the default factory object. */ function getDefaultLoggerFactory() { return factory; } //# sourceMappingURL=Factory.js.map