UNPKG

@skyra/logger

Version:

A lightweight logger system with level support

91 lines (89 loc) 3.69 kB
import { redBright, red, yellow, blue, magenta, gray } from 'colorette'; export * from 'colorette'; import { format, inspect } from 'util'; 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 __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); var _Logger = class _Logger { constructor(options = {}) { /** * The depth of the inspect. */ __publicField(this, "level"); /** * The inspect depth when logging objects. */ __publicField(this, "depth"); /** * The context for each logging level. */ __publicField(this, "levels"); this.level = options.level ?? _Logger.Level.Info; this.depth = options.depth ?? 0; this.levels = { [_Logger.Level.Trace]: { color: gray, method: "trace", name: "TRACE" }, [_Logger.Level.Debug]: { color: magenta, method: "debug", name: "DEBUG" }, [_Logger.Level.Info]: { color: blue, method: "info", name: "INFO" }, [_Logger.Level.Warn]: { color: yellow, method: "warn", name: "WARN" }, [_Logger.Level.Error]: { color: red, method: "error", name: "ERROR" }, [_Logger.Level.Fatal]: { color: redBright, method: "error", name: "FATAL" }, ...options.levels }; } enabled(level) { return level >= this.level; } disabled(level) { return level < this.level; } trace(value, ...args) { if (this.enabled(_Logger.Level.Trace)) this.write(this.levels[_Logger.Level.Trace], value, args); } debug(value, ...args) { if (this.enabled(_Logger.Level.Debug)) this.write(this.levels[_Logger.Level.Debug], value, args); } info(value, ...args) { if (this.enabled(_Logger.Level.Info)) this.write(this.levels[_Logger.Level.Info], value, args); } warn(value, ...args) { if (this.enabled(_Logger.Level.Warn)) this.write(this.levels[_Logger.Level.Warn], value, args); } error(value, ...args) { if (this.enabled(_Logger.Level.Error)) this.write(this.levels[_Logger.Level.Error], value, args); } fatal(value, ...args) { if (this.enabled(_Logger.Level.Fatal)) this.write(this.levels[_Logger.Level.Fatal], value, args); } write(context, value, args) { const header = `[${context.color(this.time)}] ${context.color(context.name)} (${process.pid}): `; const formatted = typeof value === "string" ? format(value, ...args) : inspect(value, { colors: true }); console[context.method](`${header}${formatted.replaceAll("\n", ` ${header}`)}`); } get time() { const date = /* @__PURE__ */ new Date(); const YYYY = String(date.getUTCFullYear()); const MM = String(date.getUTCMonth() + 1).padStart(2, "0"); const DD = String(date.getUTCDate()).padStart(2, "0"); const hh = String(date.getUTCHours()).padStart(2, "0"); const mm = String(date.getUTCMinutes()).padStart(2, "0"); const ss = String(date.getUTCSeconds()).padStart(2, "0"); return `${YYYY}/${MM}/${DD}-${hh}:${mm}:${ss}`; } }; __name(_Logger, "Logger"); var Logger = _Logger; ((Logger2) => { ((Level2) => { Level2[Level2["Trace"] = 0] = "Trace"; Level2[Level2["Debug"] = 1] = "Debug"; Level2[Level2["Info"] = 2] = "Info"; Level2[Level2["Warn"] = 3] = "Warn"; Level2[Level2["Error"] = 4] = "Error"; Level2[Level2["Fatal"] = 5] = "Fatal"; })(Logger2.Level || (Logger2.Level = {})); })(Logger || (Logger = {})); export { Logger }; //# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map