@axiomhq/logging
Version:
The official logging package for Axiom
35 lines (34 loc) • 1.09 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const js = require("@axiomhq/js");
const logger = require("../logger.cjs");
class AxiomJSTransport {
config;
promises = [];
constructor(config) {
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