UNPKG

@push.rocks/smartlog

Version:

A minimalistic, distributed, and extensible logging tool supporting centralized log management.

292 lines (268 loc) 9.68 kB
var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __commonJS = (cb, mod) => function __require() { return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; }; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); // node_modules/.pnpm/@push.rocks+isounique@1.0.5/node_modules/@push.rocks/isounique/dist_ts/index.js var require_dist_ts = __commonJS({ "node_modules/.pnpm/@push.rocks+isounique@1.0.5/node_modules/@push.rocks/isounique/dist_ts/index.js"(exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.uni = void 0; var uni = (prefix = "uni") => { return `${prefix}_${`xxxxxxxxxxxxxxxxxxxxxxxx`.replace(/[xy]/g, (c) => { const r = Math.random() * 16 | 0; const v = c === "x" ? r : r & 3 | 8; return v.toString(16); })}`; }; exports.uni = uni; } }); // dist_ts_interfaces/index.js var dist_ts_interfaces_exports = {}; __export(dist_ts_interfaces_exports, { request: () => smartlog_interfaces_requests_exports }); // node_modules/.pnpm/@api.global+typedrequest-interfaces@3.0.19/node_modules/@api.global/typedrequest-interfaces/dist_ts/index.js var dist_ts_exports = {}; // node_modules/.pnpm/@tsclass+tsclass@9.2.0/node_modules/@tsclass/tsclass/dist_ts/index.js var dist_ts_exports2 = {}; __export(dist_ts_exports2, { business: () => business_exports, code: () => code_exports, container: () => container_exports, content: () => content_exports, database: () => database_exports, descriptors: () => descriptors_exports, finance: () => finance_exports, general: () => general_exports, network: () => network_exports, saas: () => saas_exports, storage: () => storage_exports, website: () => website_exports }); // node_modules/.pnpm/@tsclass+tsclass@9.2.0/node_modules/@tsclass/tsclass/dist_ts/business/index.js var business_exports = {}; // node_modules/.pnpm/@tsclass+tsclass@9.2.0/node_modules/@tsclass/tsclass/dist_ts/database/index.js var database_exports = {}; // node_modules/.pnpm/@tsclass+tsclass@9.2.0/node_modules/@tsclass/tsclass/dist_ts/finance/index.js var finance_exports = {}; // node_modules/.pnpm/@tsclass+tsclass@9.2.0/node_modules/@tsclass/tsclass/dist_ts/code/index.js var code_exports = {}; // node_modules/.pnpm/@tsclass+tsclass@9.2.0/node_modules/@tsclass/tsclass/dist_ts/container/index.js var container_exports = {}; // node_modules/.pnpm/@tsclass+tsclass@9.2.0/node_modules/@tsclass/tsclass/dist_ts/descriptors/index.js var descriptors_exports = {}; // node_modules/.pnpm/@tsclass+tsclass@9.2.0/node_modules/@tsclass/tsclass/dist_ts/content/index.js var content_exports = {}; // node_modules/.pnpm/@tsclass+tsclass@9.2.0/node_modules/@tsclass/tsclass/dist_ts/general/index.js var general_exports = {}; // node_modules/.pnpm/@tsclass+tsclass@9.2.0/node_modules/@tsclass/tsclass/dist_ts/network/index.js var network_exports = {}; __export(network_exports, { ICnameDescriptor: () => ICnameDescriptor }); // node_modules/.pnpm/@tsclass+tsclass@9.2.0/node_modules/@tsclass/tsclass/dist_ts/network/cname.js var ICnameDescriptor = class { }; // node_modules/.pnpm/@tsclass+tsclass@9.2.0/node_modules/@tsclass/tsclass/dist_ts/saas/index.js var saas_exports = {}; // node_modules/.pnpm/@tsclass+tsclass@9.2.0/node_modules/@tsclass/tsclass/dist_ts/storage/index.js var storage_exports = {}; // node_modules/.pnpm/@tsclass+tsclass@9.2.0/node_modules/@tsclass/tsclass/dist_ts/website/index.js var website_exports = {}; // dist_ts_interfaces/smartlog-interfaces.requests.js var smartlog_interfaces_requests_exports = {}; // ts/smartlog.plugins.ts var isounique = __toESM(require_dist_ts(), 1); // ts/smartlog.classes.consolelog.ts var ConsoleLog = class { log(logLevelArg, logMessageArg, dataArg, correlationArg) { console.log(`__# ${logLevelArg}: ${logMessageArg}`); } }; // ts/smartlog.classes.logrouter.ts var LogRouter = class { constructor() { /** * all log destinations */ this.logDestinations = []; } addLogDestination(logDestination) { this.logDestinations.push(logDestination); } // routes the log according to added logDestinations async routeLog(logPackageArg) { for (const logDestination of this.logDestinations) { await logDestination.handleLog(logPackageArg); } } }; // ts/smartlog.classes.smartlog.ts var Smartlog = class _Smartlog { constructor(optionsArg) { this.uniInstanceId = isounique.uni(); this.logRouter = new LogRouter(); this.logContext = optionsArg.logContext; this.minimumLogLevel = optionsArg.minimumLogLevel || "silly"; } // STATIC static createForCommitinfo(commitinfo) { return new _Smartlog({ logContext: { commitinfo } }); } addLogDestination(logDestinationArg) { this.logRouter.addLogDestination(logDestinationArg); } // ============ // Logger Setup // ============ /** * enables console logging */ enableConsole(optionsArg) { if (globalThis.process && optionsArg && optionsArg.captureAll) { const process = globalThis.process; const originalStdoutWrite = process.stdout.write.bind(process.stdout); const originalStderrWrite = process.stderr.write.bind(process.stderr); process.stdout.write = (...args) => { const logString = args[0]; if (!logString || typeof logString !== "string") { return originalStdoutWrite(...args); } if (!logString.startsWith("LOG")) { if (logString.includes("Error:")) { this.log("error", logString); } else { this.log("info", logString); } return true; } return originalStdoutWrite(...args); }; process.stderr.write = (...args) => { const logString = args[0]; if (!logString || typeof logString !== "string" || !logString.startsWith("LOG")) { this.log("error", logString); return true; } return originalStderrWrite(...args); }; } this.consoleEnabled = true; } // ============= // log functions // ============= /** * main log method * @param logLevelArg - the log level * @param logMessageArg - the log message * @param logDataArg - any additional log data * @param correlationArg - info about corrleations */ async log(logLevelArg, logMessageArg, logDataArg, correlationArg) { correlationArg = { ...{ id: isounique.uni(), type: "none", instance: this.uniInstanceId }, ...correlationArg }; if (this.consoleEnabled) { this.safeConsoleLog(`${logLevelArg}: ${logMessageArg}`); } const logPackage = { timestamp: Date.now(), type: "log", context: this.logContext, level: logLevelArg, correlation: correlationArg, message: logMessageArg }; if (logDataArg) { logPackage.data = logDataArg; } await this.logRouter.routeLog(logPackage); } increment(logLevelArg, logMessageArg, logDataArg, correlationArg = { id: isounique.uni(), type: "none" }) { if (this.consoleEnabled) { this.safeConsoleLog(`INCREMENT: ${logLevelArg}: ${logMessageArg}`); } this.logRouter.routeLog({ timestamp: Date.now(), type: "increment", context: this.logContext, level: logLevelArg, message: logMessageArg, correlation: correlationArg }); } async handleLog(logPackageArg) { await this.logRouter.routeLog(logPackageArg); } safeConsoleLog(logLine) { console.log( `LOG => ${(/* @__PURE__ */ new Date()).getHours()}:${(/* @__PURE__ */ new Date()).getMinutes()}:${(/* @__PURE__ */ new Date()).getSeconds()} => ${logLine}` ); } createLogGroup(transactionId = "none") { return new LogGroup(this, transactionId); } }; // ts/smartlog.classes.loggroup.ts var LogGroup = class { constructor(smartlogInstance, transactionIdArg) { this.groupId = isounique.uni(); this.smartlogRef = smartlogInstance; this.transactionId = transactionIdArg; } log(logLevelArg, logMessageArg, logDataArg) { this.smartlogRef.log(logLevelArg, logMessageArg, logDataArg, { id: isounique.uni(), type: "none", group: this.groupId, instance: this.smartlogRef.uniInstanceId, transaction: this.transactionId }); } }; export { ConsoleLog, LogGroup, Smartlog }; //# sourceMappingURL=bundle.js.map