@axiomhq/logging
Version:
The official logging package for Axiom
41 lines (40 loc) • 1.48 kB
JavaScript
;
var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => {
__defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
return value;
};
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const js = require("@axiomhq/js");
const logger = require("../logger.cjs");
class AxiomJSTransport {
constructor(config) {
__publicField(this, "config");
__publicField(this, "promises", []);
this.config = config;
}
log(logs) {
const filteredLogs = logs.filter(
(log) => logger.LogLevelValue[log.level ?? logger.LogLevel.info] >= logger.LogLevelValue[this.config.logLevel ?? logger.LogLevel.info]
);
if (filteredLogs.length === 0) {
return;
}
if (this.config.axiom instanceof js.Axiom) {
this.config.axiom.ingest(this.config.dataset, filteredLogs);
} else if (this.config.axiom instanceof js.AxiomWithoutBatching) {
this.promises.push(this.config.axiom.ingest(this.config.dataset, filteredLogs));
}
}
async flush() {
if (this.config.axiom instanceof js.Axiom) {
await this.config.axiom.flush();
} else {
await Promise.allSettled(this.promises);
}
this.promises = [];
}
}
exports.AxiomJSTransport = AxiomJSTransport;
//# sourceMappingURL=axiom-js.cjs.map