UNPKG

@opentelemetry/api

Version:
68 lines (67 loc) • 2.71 kB
const require_global_utils = require("../internal/global-utils.cjs"); const require_ComponentLogger = require("../diag/ComponentLogger.cjs"); require("../diag/types.cjs"); const require_logLevelLogger = require("../diag/internal/logLevelLogger.cjs"); //#region src/api/diag.ts const API_NAME = "diag"; /** * Singleton object which represents the entry point to the OpenTelemetry internal * diagnostic API * * @since 1.0.0 */ var DiagAPI = class DiagAPI { /** Get the singleton instance of the DiagAPI API */ static instance() { if (!this._instance) this._instance = new DiagAPI(); return this._instance; } /** * Private internal constructor * @private */ constructor() { function _logProxy(funcName) { return function(...args) { const logger = require_global_utils.getGlobal("diag"); if (!logger) return; return logger[funcName](...args); }; } const self = this; const setLogger = (logger, optionsOrLogLevel = { logLevel: 60 }) => { var _optionsOrLogLevel$lo; if (logger === self) { var _err$stack; const err = /* @__PURE__ */ new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation"); self.error((_err$stack = err.stack) !== null && _err$stack !== void 0 ? _err$stack : err.message); return false; } if (typeof optionsOrLogLevel === "number") optionsOrLogLevel = { logLevel: optionsOrLogLevel }; const oldLogger = require_global_utils.getGlobal("diag"); const newLogger = require_logLevelLogger.createLogLevelDiagLogger((_optionsOrLogLevel$lo = optionsOrLogLevel.logLevel) !== null && _optionsOrLogLevel$lo !== void 0 ? _optionsOrLogLevel$lo : 60, logger); if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) { var _Error$stack; const stack = (_Error$stack = (/* @__PURE__ */ new Error()).stack) !== null && _Error$stack !== void 0 ? _Error$stack : "<failed to generate stacktrace>"; oldLogger.warn(`Current logger will be overwritten from ${stack}`); newLogger.warn(`Current logger will overwrite one already registered from ${stack}`); } return require_global_utils.registerGlobal("diag", newLogger, self, true); }; self.setLogger = setLogger; self.disable = () => { require_global_utils.unregisterGlobal(API_NAME, self); }; self.createComponentLogger = (options) => { return new require_ComponentLogger.DiagComponentLogger(options); }; self.verbose = _logProxy("verbose"); self.debug = _logProxy("debug"); self.info = _logProxy("info"); self.warn = _logProxy("warn"); self.error = _logProxy("error"); } }; //#endregion exports.DiagAPI = DiagAPI; //# sourceMappingURL=diag.cjs.map