0.0.7 • Published 4 months ago

isomorphic-rslog v0.0.7

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

isomorphic-rslog

A tiny, intuitive, type-friendly logger for Node.js/Browser.

  • Tiny. 1.5kB gzipped.
  • Clean. Zero dependencies.
  • Intuitive. Clear log prefix.
  • Type-friendly. Written in TypeScript.

Preview

Node.js

Browser

Install

# with npm
npm add isomorphic-rslog

# with yarn
yarn add isomorphic-rslog

# with pnpm
pnpm add isomorphic-rslog

# with bun
bun add isomorphic-rslog

Usage

  • Require:
// with require
const { logger } = require('isomorphic-rslog');

// with import
import { logger } from 'isomorphic-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 'isomorphic-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:

LevelMethod
errorerror
warnwarn
infoinfo, start, ready, success
loglog
verbosedebug

Label Prefix

You can create a new logger instance through createLogger and specify the label prefix:

import { createLogger } from 'isomorphic-rslog';

const logger = createLogger({ level: 'warn' });

const logger = createLogger({
  labels: {
    warn: '[ Prefix ] Warn',
    error: '[ Prefix ] Error',
    success: '[ Prefix ] Success',
    info: '[ Prefix ] Info',
    ready: '[ Prefix ] Ready',
    debug: '[ Prefix ] Debug',
  },
});

logger.info('this is an info message');
logger.warn('this is a warn message');
logger.ready('this is a ready message');
logger.debug('this is a debug message');
logger.success('this is a success message');

Override

You can use logger.override to override some or all methods of the default logger.

import { logger } from 'isomorphic-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}`);
  },
});

Environment

isomorphic-rslog provides both CommonJS and ESModule output and supports Node.js >= 14.

Credits

isomorphic-rslog is fork from rslog.

isomorphic-rslog is built with Modern.js.

The color implementation of isomorphic-rslog are modified from alexeyraspopov/picocolors.

License

isomorphic-rslog is MIT licensed.

0.0.8-alpha.1

4 months ago

0.0.5

8 months ago

0.0.7

6 months ago

0.0.6

7 months ago

0.0.4

8 months ago

0.0.3

8 months ago

0.0.2

8 months ago

0.0.1

8 months ago