@axiomhq/logging
Version:
The official logging package for Axiom
86 lines (85 loc) • 2.52 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 logger = require("../logger.cjs");
const runtime = require("../runtime.cjs");
const levelColors = {
info: {
terminal: "32",
browser: "lightgreen"
},
debug: {
terminal: "36",
browser: "lightblue"
},
warn: {
terminal: "33",
browser: "yellow"
},
error: {
terminal: "31",
browser: "red"
}
};
class ConsoleTransport {
constructor(config) {
__publicField(this, "config");
__publicField(this, "log", (logs) => {
logs.forEach((log) => {
if (logger.LogLevelValue[log.level ?? logger.LogLevel.info] >= logger.LogLevelValue[this.config.logLevel ?? logger.LogLevel.info]) {
this.prettyPrint(log);
}
});
});
this.config = { ...config };
}
isStandardLogEvent(log) {
return typeof log === "object" && log !== null && "level" in log && "message" in log && "fields" in log;
}
prettyPrint(ev) {
const hasFields = ev.fields && Object.keys(ev.fields).length > 0;
if (!this.config.prettyPrint) {
if (!this.isStandardLogEvent(ev)) {
console.log(ev);
return;
}
let msg = `${ev.level} - ${ev.message}`;
if (hasFields) {
msg += " " + JSON.stringify(ev.fields);
}
console.log(msg);
return;
}
if (!this.isStandardLogEvent(ev)) {
if (runtime.isBrowser) {
console.log("%c%s", `color: ${levelColors[logger.LogLevel.info].browser};`, ev);
} else {
console.log(`\x1B[${levelColors[logger.LogLevel.info].terminal}m%s\x1B[0m`, ev);
}
return;
}
let msgString = "";
let args = [ev.level, ev.message];
if (runtime.isBrowser) {
msgString = "%c%s - %s";
args = [`color: ${levelColors[ev.level].browser};`, ...args];
} else {
msgString = `\x1B[${levelColors[ev.level].terminal}m%s\x1B[0m - %s`;
}
if (hasFields) {
msgString += " %o";
args.push(ev.fields);
}
console.log.apply(console, [msgString, ...args]);
}
flush() {
return;
}
}
exports.ConsoleTransport = ConsoleTransport;
//# sourceMappingURL=console.cjs.map