UNPKG

@bracketed/logger

Version:

An alternative to your run-of-the-mill node console logging functions!

2 lines 1.92 kB
import {a as a$1}from'../chunk-QWPVIX2T.mjs';import {isColorSupported,gray,magenta,cyan,yellow,red,bgRed,white}from'../Colouring/index.mjs';import {Console}from'console';import {inspect}from'util';import {LogLevel}from'./ILogger/ILogLevel.mjs';import {Logger}from'./ILogger/ILoggerStyle.mjs';import {LoggerLevel}from'./Level.mjs';var a=class extends Logger{static{a$1(this,"Logger");}console;formats;join;depth;prefix;constructor(e={}){super(e.level??LogLevel.Info),this.join=e.join??" ",this.depth=e.depth??2,this.prefix=e.prefix??void 0,this.console=new Console(e.stdout??process.stdout,e.stderr??process.stderr),this.formats=this.createFormatMap(e.format,e.defaultFormat);}write(e,...r){if(e<this.level)return;let s=this.levels.get(e)??"log",i=this.formats.get(e)??this.formats.get(LogLevel.None);this.console[s](i.run(this.preprocess(r)));}preprocess(e){let r={colors:isColorSupported,depth:this.depth};return e.map(s=>typeof s=="string"?s:inspect(s,r)).join(this.join)}get levels(){return Reflect.get(Logger,"levels")}static get stylize(){return isColorSupported}createFormatMap(e={},r=e.none??{}){return new Map([[LogLevel.Trace,this.ensureDefaultLevel(e.trace,r,gray,"TRACE")],[LogLevel.Debug,this.ensureDefaultLevel(e.debug,r,magenta,"DEBUG")],[LogLevel.Info,this.ensureDefaultLevel(e.info,r,cyan,"INFO")],[LogLevel.Warn,this.ensureDefaultLevel(e.warn,r,yellow,"WARN")],[LogLevel.Error,this.ensureDefaultLevel(e.error,r,red,"ERROR")],[LogLevel.Fatal,this.ensureDefaultLevel(e.fatal,r,bgRed,"FATAL")],[LogLevel.None,this.ensureDefaultLevel(e.none,r,white,"")]])}ensureDefaultLevel(e,r,s,i){return e?new LoggerLevel(e):new LoggerLevel({...r,timestamp:r.timestamp===null?null:{...r.timestamp??{},color:s},infix:i.length?`${s(i.padEnd(5," "))} - ${this.prefix?`${this.prefix} - `:""}`:`${this.prefix?`${this.prefix} - `:""}`})}};export{a as Logger};//# sourceMappingURL=Logger.mjs.map //# sourceMappingURL=Logger.mjs.map