# @mobizerg/nest-logger

> Winston logger integration module for nestjs framework

Latest version **1.0.0** (published 2020-11-30) · MIT license · 0 weekly downloads

## Install

```sh
npm install @mobizerg/nest-logger
pnpm add @mobizerg/nest-logger
yarn add @mobizerg/nest-logger
bun add @mobizerg/nest-logger
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2020-11-30 |
| First published | 2019-08-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 20.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 3 |
| Author | Mobizerg |
| Maintainers | frozenex |
| Keywords | nestjs, logger, winston, typescript, mobizerg |

## Links

- npm: https://www.npmjs.com/package/@mobizerg/nest-logger
- Repository: https://github.com/mobizerg/nest-logger
- Issues: https://github.com/mobizerg/nest-logger/issues
- npm.io page: https://npm.io/package/@mobizerg/nest-logger

## Dependencies (1)

- [winston](https://npm.io/package/winston.md) ^3.3.3

## 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

- 1.0.0 (latest) — 2020-11-30
- 0.1.1 — 2020-02-14
- 0.1.0 — 2020-01-27
- 0.0.9 — 2020-01-27
- 0.0.8 — 2020-01-27
- 0.0.7 — 2020-01-27
- 0.0.6 — 2020-01-27
- 0.0.5 — 2020-01-27
- 0.0.4 — 2019-12-17
- 0.0.3 — 2019-12-17
- 0.0.2 — 2019-08-05
- 0.0.1 — 2019-08-05

## README

<p align="center">
  <a href="http://nestjs.com/" target="blank">
    <img src="https://nestjs.com/img/logo_text.svg" width="320" alt="Nest Logo" />
  </a>
</p>

<p align="center">
Winston custom logger integration module for Nest.js framework.
</p>

### Installation

**Yarn**
```bash
yarn add @mobizerg/nest-logger winston
```

**NPM**
```bash
npm install @mobizerg/nest-logger winston --save
```

### Description
Custom logger module for [Nest.js](https://github.com/nestjs/nest) based on [Winston](https://github.com/winstonjs/winston) package.

### Usage

Import the **LoggerModule** in `app.module.ts`

```typescript
import { Module } from '@nestjs/common';
import { LoggerModule } from '@mobizerg/nest-logger';

@Module({
    imports: [
        LoggerModule.register(options),
    ],
})
export class AppModule {}
```
With Async
```typescript
import { Module } from '@nestjs/common';
import { LoggerModule } from '@mobizerg/nest-logger';

@Module({
    imports: [
        LoggerModule.registerAsync({
            imports: [ConfigModule],
            useExisting: LoggerConfigService,
        }),
    ],
})
export class AppModule {}
```

Example config file (async)
```typescript
import { Injectable } from '@nestjs/common';
import { ConfigService } from './config.service';
import { LoggerModuleOptions, LoggerOptionsFactory } from '@mobizerg/nest-logger';
import { transports, format } from 'winston';

@Injectable()
export class LoggerConfigService implements LoggerOptionsFactory {

  constructor(private readonly config: ConfigService) {}

  createLoggerOptions(name?: string): LoggerModuleOptions {
    
    return {
      name,
      // Winston logger options
      loggerOptions: {
        level: 'error',
        format: format.cli(),
        transports: [new transports.Console()]
      },
    };
  }
}
```

Add **LoggerModule** in `main.ts`
```typescript
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { LoggerService } from '@mobizerg/nest-logger';

async function bootstrap() {
  
  const server = express();
  const app = await NestFactory.create(AppModule, { logger: false });
  const logger = app.get(LoggerService);
  app.useLogger(logger);
}
```

### License

MIT

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