# rslog

Latest version **2.3.0** (published 2026-07-15) · MIT license · 0 weekly downloads

## Install

```sh
npm install rslog
pnpm add rslog
yarn add rslog
bun add rslog
```

## Health

**Score 75/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; high quality score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 2.3.0 |
| Published | 2026-07-15 |
| First published | 2023-09-28 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Node | ^20.19.0 \|\| >=22.12.0 |
| Dependencies | 0 |
| Unpacked size | 14.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 39 |
| Maintainers | chenjiahan |

## Links

- npm: https://www.npmjs.com/package/rslog
- Repository: https://github.com/rstackjs/rslog
- npm.io page: https://npm.io/package/rslog

## Recent versions

- 2.3.0 (latest) — 2026-07-15
- 1.2.0-beta.0 (beta) — 2024-01-02
- 2.2.0 — 2026-07-10
- 2.1.3 — 2026-06-05
- 2.1.2 — 2026-05-28
- 2.1.1 — 2026-03-28
- 2.1.0 — 2026-03-23
- 2.0.1 — 2026-03-08
- 2.0.0 — 2026-02-03
- 1.3.2 — 2025-11-28
- 1.3.1 — 2025-11-24
- 1.3.0 — 2025-10-20
- 1.2.11 — 2025-08-05
- 1.2.10 — 2025-08-04
- 1.2.9 — 2025-06-30
- … 28 more at https://npm.io/package/rslog/versions

## README

# Rslog

<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&colorA=564341&colorB=EDED91" alt="license" />
  <a href="https://npmcharts.com/compare/rslog?minimal=true"><img src="https://img.shields.io/npm/dm/rslog.svg?style=flat-square&colorA=564341&colorB=EDED91" alt="downloads" /></a>
</p>

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

- **Tiny**. [2kB gzipped](https://bundlephobia.com/package/rslog).
- **Clean**. Zero dependencies.
- **Intuitive**. Clear log prefix.
- **Type-friendly**. Written in TypeScript.

## Preview

![Artboard](https://github.com/rstackjs/rslog/assets/7237365/9677ecb3-eff1-4c0e-9392-9b61b248fe5c)

## Install

```bash
# with npm
npm add rslog

# with yarn
yarn add rslog

# with pnpm
pnpm add rslog

# with bun
bun add rslog
```

Rslog requires Node.js `^20.19.0 || >=22.12.0`. If you are on Node 18, upgrade Node before using the package.

## Usage

```js
import { logger } from 'rslog';
```

- Log:

```js
// A 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:

```js
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:

```js
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.

```js
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`:

```js
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:

```js
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:

```js
import { createLogger } from 'rslog';

const logger = createLogger({
  prefix: '[web]',
});

logger.info('server started');
// info    [web] server started
```

## Color

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.

```js
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](https://github.com/rstackjs/rslog/blob/main/LICENSE).

---
_Source: https://npm.io/package/rslog · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
