1.0.3 • Published 5 years ago
tiny-console-logger v1.0.3
tiny-console-logger

Small and super simple console logger with log level, formatter and custom reporter support. Runs in node and the browser, written in TypeScript.
Installation
npm i tiny-console-loggerGetting started
import createLogger, { LogLevel } from 'tiny-console-logger';
const logger = createLogger();
logger.setLevel(LogLevel.INFO);
logger.log('Hello');Log levels
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
Reporters
A reporter does the actual logging. The default reporter uses the global console, but it's also possible to use a custom reporter:
const arrayLog = [];
logger.setReporter((args, methodName, logLevel) => {
arrayLog.push(`[${logLevel}] ${args.map(String).join(' ')}`);
});Because reporters are functions, they are easy to combine:
import createLogger, { defaultReporter } from 'tiny-console-logger';
const arrayLog = [];
const logger = createLogger();
logger.setReporter((args, methodName, logLevel) => {
arrayLog.push(`[${logLevel}] ${args.map(String).join(' ')}`);
defaultReporter(args, methodName, logLevel);
});Formatters
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})`
]);Methods
Logging methods
trace(...args: any[])debug(...args: any[])info(...args: any[])log(...args: any[])warn(...args: any[])error(...args: any[])
setLevel(level: LogLevel)
Sets the log level.
logger.setLevel(LogLevel.ERROR)getLevel(): LogLevel
Returns the current log level.
setFormatter(formatter: Formatter)
Sets custom formatter.
setReporter(reporter: Reporter)
Sets custom reporter.