UNPKG

@axiomhq/logging

Version:
42 lines (41 loc) 1.3 kB
import { Axiom, AxiomWithoutBatching } from "@axiomhq/js"; import { LogLevelValue, LogLevel } from "../logger.js"; import { Version } from "../runtime.js"; const axiomClient = `axiom-logging/${Version}`; class AxiomJSTransport { config; promises = []; constructor(config) { this.config = config; this.appendAxiomClient(config.axiomClient ? `${axiomClient} ${config.axiomClient}` : axiomClient); } appendAxiomClient(axiomClient2) { this.config.axiom.appendAxiomClient?.(axiomClient2); } log(logs) { const filteredLogs = logs.filter( (log) => LogLevelValue[log.level ?? LogLevel.info] >= LogLevelValue[this.config.logLevel ?? LogLevel.info] ); if (filteredLogs.length === 0) { return; } if (this.config.axiom instanceof Axiom) { this.config.axiom.ingest(this.config.dataset, filteredLogs); } else if (this.config.axiom instanceof AxiomWithoutBatching) { this.promises.push(this.config.axiom.ingest(this.config.dataset, filteredLogs)); } } async flush() { if (this.config.axiom instanceof Axiom) { await this.config.axiom.flush(); } else { await Promise.allSettled(this.promises); } this.promises = []; } } export { AxiomJSTransport, axiomClient }; //# sourceMappingURL=axiom-js.js.map