rslog
v2.1.0
Published
<p> <a href="https://npmjs.com/package/rslog"> <img src="https://img.shields.io/npm/v/rslog?style=flat-square&colorA=564341&colorB=EDED91" alt="npm version" /> </a> <img src="https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square&col
Readme
Rslog
A tiny, intuitive, type-friendly logger for Node.js.
- Tiny. 2kB gzipped.
- Clean. Zero dependencies.
- Intuitive. Clear log prefix.
- Type-friendly. Written in TypeScript.
Preview
Install
# with npm
npm add rslog
# with yarn
yarn add rslog
# with pnpm
pnpm add rslog
# with bun
bun add rslogRslog requires Node.js ^20.19.0 || >=22.12.0. If you are on Node 18, upgrade Node before using the package.
Usage
import { logger } from 'rslog';- Log:
// A gradient welcome log
logger.greet(`\n➜ Rslog v1.0.0\n`);
// Info
logger.info('This is a info message');
// Start
logger.start('This is a start message');
// Warn
logger.warn('This is a warn message');
// Ready
logger.ready('This is a ready message');
// Success
logger.success('This is a success message');
// Error
logger.error('This is a error message');
logger.error(new Error('This is a error message with stack'));
// Debug
logger.debug('This is a debug message');
// Same as console.log
logger.log('This is a log message');Log Level
You can create a new logger instance through createLogger and specify the log level:
import { createLogger } from 'rslog';
const logger = createLogger({ level: 'warn' });
// Will print
logger.error('This is a error message');
logger.warn('This is a warn message');
// Will not print
logger.info('This is a info message');
logger.log('This is a log message');You can also directly modify the level attribute of the logger instance:
logger.level = 'verbose';The log levels of each method are as follows:
| Level | Method |
| ---------- | --------------------------------------------------- |
| silent | No log will be output |
| error | only error logs |
| warn | warn |
| info (log) | info, start, ready, success, log, greet |
| verbose | debug |
Override
You can use logger.override to override some or all methods of the default logger.
import { logger } from 'rslog';
logger.override({
log: message => {
console.log(`[LOG] ${message}`);
},
info: message => {
console.log(`[INFO] ${message}`);
},
warn: message => {
console.log(`[WARN] ${message}`);
},
error: message => {
console.log(`[ERROR] ${message}`);
},
});Options
You can read the original options passed to createLogger from logger.options:
import { createLogger } from 'rslog';
const logger = createLogger({
prefix: '[web]',
level: 'warn',
});
console.log(logger.options);
// { prefix: '[web]', level: 'warn' }Custom Console
You can also provide a custom console implementation when creating a logger:
import { Console } from 'node:console';
import { createWriteStream } from 'node:fs';
import { createLogger } from 'rslog';
const customConsole = new Console({
stdout: createWriteStream('./stdout.log'),
stderr: createWriteStream('./stderr.log'),
});
const logger = createLogger({
console: customConsole,
});Prefix
You can prepend a fixed prefix to every log message:
import { createLogger } from 'rslog';
const logger = createLogger({
prefix: '[web]',
});
logger.info('server started');
// info [web] server startedColor
You can import color directly from rslog to style your own output:
It is a small wrapper around Node.js styleText, with a simpler API for common styling.
import { color, logger } from 'rslog';
logger.success(color.green('done'));
logger.info(color.bold(color.blue('build complete')));
logger.error(color.red('something went wrong'));Environment
Rslog supports Node.js ^20.19.0 || >=22.12.0.
License
Rslog is MIT licensed.
