# @rnw-community/nestjs-rxjs-logger

> NestJS RxJS logger

Latest version **2.15.0** (published 2026-08-26) · MIT license · 0 weekly downloads

## Install

```sh
npm install @rnw-community/nestjs-rxjs-logger
pnpm add @rnw-community/nestjs-rxjs-logger
yarn add @rnw-community/nestjs-rxjs-logger
bun add @rnw-community/nestjs-rxjs-logger
```

## 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.15.0 |
| Published | 2026-08-26 |
| First published | 2021-08-18 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=22.0.0 |
| Dependencies | 1 |
| Unpacked size | 34.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| Maintainers | vitalyiegorov |
| Keywords | nestjs, nestjs logger, rxjs logger |

## Links

- npm: https://www.npmjs.com/package/@rnw-community/nestjs-rxjs-logger
- Repository: https://github.com/rnw-community/rnw-community
- Homepage: https://github.com/rnw-community/rnw-community#readme
- Issues: https://github.com/rnw-community/rnw-community/issues
- npm.io page: https://npm.io/package/@rnw-community/nestjs-rxjs-logger

## Dependencies (1)

- [@rnw-community/shared](https://npm.io/package/@rnw-community/shared.md) ^2.15.0

## Alternatives

- [cli-color](https://npm.io/package/cli-color.md) — 3.4M weekly downloads
- [log](https://npm.io/package/log.md) — 1.3M weekly downloads
- [logstash-client](https://npm.io/package/logstash-client.md) — 4.5K weekly downloads
- [@nocobase/plugin-logger](https://npm.io/package/@nocobase/plugin-logger.md) — 2.0K weekly downloads
- [child-process-debug](https://npm.io/package/child-process-debug.md) — 695 weekly downloads

## Recent versions

- 2.15.0 (latest) — 2026-08-26
- 2.13.0 — 2026-08-18
- 2.12.13 — 2026-08-10
- 2.12.12 — 2026-08-09
- 2.12.10 — 2026-08-06
- 2.12.9 — 2026-08-05
- 2.12.8 — 2026-08-05
- 2.12.7 — 2026-08-05
- 2.12.6 — 2026-08-04
- 2.12.5 — 2026-08-03
- 2.12.2 — 2026-08-03
- 2.9.0 — 2026-08-02
- 2.3.2 — 2026-08-01
- 2.2.0 — 2026-05-09
- 2.1.0 — 2026-05-09
- … 139 more at https://npm.io/package/@rnw-community/nestjs-rxjs-logger/versions

## README

# NestJS RxJS logger

NestJS default logger wrapper for using with RxJS streams.

[![npm version](https://badge.fury.io/js/%40rnw-community%2Fnestjs-rxjs-logger.svg)](https://badge.fury.io/js/%40rnw-community%2Fnestjs-rxjs-logger)
[![coverage](https://img.shields.io/codecov/c/github/rnw-community/rnw-community?flag=nestjs-rxjs-logger&label=coverage)](https://app.codecov.io/gh/rnw-community/rnw-community)
[![npm downloads](https://img.shields.io/npm/dm/%40rnw-community%2Fnestjs-rxjs-logger.svg)](https://www.npmjs.com/package/%40rnw-community%2Fnestjs-rxjs-logger)

## Exports

### `AppLogLevelEnum`

`'debug' | 'error' | 'info' | 'verbose' | 'warn'` — the level argument accepted by `NestJSRxJSLoggerService.print` / `create$`; each level also has its own same-named pipeable method (`debug`, `error`, `info`, `verbose`, `warn`) shown below.

```ts
import { AppLogLevelEnum } from '@rnw-community/nestjs-rxjs-logger';

const level: AppLogLevelEnum = AppLogLevelEnum.warn;
```

### `NestJSRxJSLoggerModule`

Provides `NestJSRxJSLoggerService` (bound to NestJS's own `Logger` under the `'LOGGER'` DI token) for your module to import.

```ts
import { Module } from '@nestjs/common';

import { NestJSRxJSLoggerModule } from '@rnw-community/nestjs-rxjs-logger';

@Module({
    imports: [NestJSRxJSLoggerModule],
    providers: [],
    exports: [],
})
export class MyModule {}
```

### `NestJSRxJSLoggerService`

`TRANSIENT`-scoped injectable with one pipeable method per log level (`debug`, `error`, `info`, `verbose`, `warn`), plus `create$` (starts a logged `Observable<boolean>`), `catch` (logs and rethrows), `setContext`, and `print` (imperative logging, no stream involved).

```ts
import { Injectable } from '@nestjs/common';

import { NestJSRxJSLoggerService } from '@rnw-community/nestjs-rxjs-logger';

@Injectable()
export class MyService {
    constructor(private readonly logger: NestJSRxJSLoggerService) {}
}
```

## Usage examples

### Basic operators example

```ts
import { Injectable } from '@nestjs/common';

import { NestJSRxJSLoggerService } from '@rnw-community/nestjs-rxjs-logger';
import { of } from 'rxjs';

import type { Observable } from 'rxjs';

@Injectable()
export class MyService {
    constructor(private readonly logger: NestJSRxJSLoggerService) {}

    loggerOperatorExample$(): Observable<true> {
        return of(true).pipe(this.logger.info('My message', 'OtherContext'));
    }
}
```

### Create stream example

```ts
import { Injectable } from '@nestjs/common';

import { NestJSRxJSLoggerService } from '@rnw-community/nestjs-rxjs-logger';
import { map } from 'rxjs';

import type { Observable } from 'rxjs';

@Injectable()
export class MyService {
    constructor(private readonly logger: NestJSRxJSLoggerService) {}

    loggerCreateStreamExample$(): Observable<number> {
        return this.logger.create$('My message', MyService.name).pipe(map(() => 1));
    }
}
```

### Catch and rethrow example

```ts
import { Injectable } from '@nestjs/common';

import { NestJSRxJSLoggerService } from '@rnw-community/nestjs-rxjs-logger';

import type { Observable } from 'rxjs';

@Injectable()
export class MyService {
    constructor(private readonly logger: NestJSRxJSLoggerService) {}

    loggerCatchExample$(source$: Observable<number>): Observable<number> {
        return source$.pipe(this.logger.catch((error: unknown) => `failed: ${String(error)}`));
    }
}
```

### Set logger context

```ts
import { Injectable } from '@nestjs/common';

import { NestJSRxJSLoggerService } from '@rnw-community/nestjs-rxjs-logger';
import { map, of } from 'rxjs';

import type { Observable } from 'rxjs';

@Injectable()
export class MyService {
    constructor(private readonly logger: NestJSRxJSLoggerService) {
        this.logger.setContext(MyService.name);
    }

    loggerOperatorExample$(): Observable<true> {
        return of(true).pipe(this.logger.info('My message'));
    }

    loggerCreateStreamExample$(): Observable<number> {
        return this.logger.create$('My message').pipe(map(() => 1));
    }
}
```

## License

This library is licensed under The [MIT License](./LICENSE.md).

---
_Source: https://npm.io/package/@rnw-community/nestjs-rxjs-logger · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
