UNPKG

@axiomhq/logging

Version:
86 lines (85 loc) 2.52 kB
"use strict"; 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