Small and super simple console logger with log level, formatter and custom reporter support. Runs in node and the browser, written in TypeScript.
npm i tiny-console-logger
importcreateLogger,{LogLevel}from'tiny-console-logger';constlogger=createLogger();logger.setLevel(LogLevel.INFO);logger.log('Hello');LogLevel.ERROR: allows.errorcallsLogLevel.WARN: allows.warncalls and calls aboveLogLevel.INFO: allows.logand.infocalls and calls aboveLogLevel.DEBUG: allows.debugcalls and calls aboveLogLevel.TRACE: allows.tracecalls and calls above
A reporter does the actual logging. The default reporter uses the global console, but it's also possible to use a custom reporter:
constarrayLog=[];logger.setReporter((args,methodName,logLevel)=>{arrayLog.push(`[${logLevel}] ${args.map(String).join(' ')}`);});Because reporters are functions, they are easy to combine:
importcreateLogger,{defaultReporter}from'tiny-console-logger';constarrayLog=[];constlogger=createLogger();logger.setReporter((args,methodName,logLevel)=>{arrayLog.push(`[${logLevel}] ${args.map(String).join(' ')}`);defaultReporter(args,methodName,logLevel);});A formatter modifies arguments passed to the reporter. The default formatter just returns arguments as-is, but it's possible to use a custom formatter:
logger.setFormatter(args=>['[prefix]', ...args]);Or:
logger.setFormatter((args,methodName,logLevel)=>[`[${logLevel}:prefix]`,
...args,`(console.${methodName})`]);trace(...args: any[])debug(...args: any[])info(...args: any[])log(...args: any[])warn(...args: any[])error(...args: any[])
Sets the log level.
logger.setLevel(LogLevel.ERROR)
Returns the current log level.
Sets custom formatter.
Sets custom reporter.