@genkit-ai/core
Version:
Genkit AI framework core libraries.
143 lines • 4.32 kB
JavaScript
;
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