UNPKG

@genkit-ai/core

Version:

Genkit AI framework core libraries.

143 lines 4.32 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; 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 __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var logging_exports = {}; __export(logging_exports, { logger: () => logger }); module.exports = __toCommonJS(logging_exports); var import_api = require("@opentelemetry/api"); var import_api_logs = require("@opentelemetry/api-logs"); const LOG_LEVELS = ["debug", "info", "warn", "error"]; const loggerKey = "__genkit_logger"; const _defaultLogger = { shouldLog(targetLevel) { return LOG_LEVELS.indexOf(this.level) <= LOG_LEVELS.indexOf(targetLevel); }, debug(...args) { this.shouldLog("debug") && console.debug(...args); }, info(...args) { this.shouldLog("info") && console.info(...args); }, warn(...args) { this.shouldLog("warn") && console.warn(...args); }, error(...args) { this.shouldLog("error") && console.error(...args); }, level: "info" }; function getLogger() { if (!global[loggerKey]) { global[loggerKey] = _defaultLogger; } return global[loggerKey]; } class Logger { defaultLogger = _defaultLogger; _emitOtel(level, args, explicitBody, explicitAttributes) { if (process.env.GENKIT_OTEL_ENABLE_LOGS !== "true") { return; } try { const currentLevel = getLogger().level || "info"; if (LOG_LEVELS.indexOf(currentLevel) > LOG_LEVELS.indexOf(level)) { return; } const otelLogger = import_api_logs.logs.getLogger("genkit-logger"); let severityNumber; switch (level) { case "debug": severityNumber = import_api_logs.SeverityNumber.DEBUG; break; case "info": severityNumber = import_api_logs.SeverityNumber.INFO; break; case "warn": severityNumber = import_api_logs.SeverityNumber.WARN; break; case "error": severityNumber = import_api_logs.SeverityNumber.ERROR; break; default: severityNumber = import_api_logs.SeverityNumber.UNSPECIFIED; break; } let body; const attributes = explicitAttributes || {}; if (explicitBody !== void 0) { body = explicitBody; } else if (args.length === 1 && typeof args[0] === "string") { body = args[0]; } else { const util = require("util"); body = util.format(...args); } let activeContext; try { activeContext = import_api.context.active(); } catch (e) { } otelLogger.emit({ severityNumber, severityText: level.toUpperCase(), body, attributes, ...activeContext ? { context: activeContext } : {} }); } catch (err) { } } init(fn) { global[loggerKey] = fn; } info(...args) { getLogger().info.apply(getLogger(), args); this._emitOtel("info", args); } debug(...args) { getLogger().debug.apply(getLogger(), args); this._emitOtel("debug", args); } error(...args) { getLogger().error.apply(getLogger(), args); this._emitOtel("error", args); } warn(...args) { getLogger().warn.apply(getLogger(), args); this._emitOtel("warn", args); } setLogLevel(level) { getLogger().level = level; } logStructured(msg, metadata) { getLogger().info(msg, metadata); this._emitOtel("info", [], msg, metadata); } logStructuredError(msg, metadata) { getLogger().error(msg, metadata); this._emitOtel("error", [], msg, metadata); } } const logger = new Logger(); // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { logger }); //# sourceMappingURL=logging.js.map