2.0.1 • Published 3 months ago

@vyce/logger v2.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
3 months ago

logger-lib

Custom Vyce NestJS logger

Installation

npm i vyce-slogger

After that add one of the following options to app/main.ts, This will overwrite the default @nestjs/common Logger and you can use the logger from there.

Option 1:

import { VyceLogger } from '@vyce/logger';

const app = await NestFactory.create(AppModule, {
  logger: new VyceLogger(),
});

Option 2:

import { VyceLogger } from '@vyce/logger';

const app = await NestFactory.create(AppModule, {
  bufferLogs: true,
});

app.useLogger(new VyceLogger());

Parameters

The logger service takes only one optional parameter isDev, when this is set to true then the logged output is colored based on the message level and content + the logging level is set to debug (otherwise info). Default value is isDev = process.env.NODE_ENV === "development" so colors should always be enabled in dev. We want colors disabled in production, because cloudwatch does not support colored output and it would just add extra junk there.

const app = await NestFactory.create(AppModule, {
  logger: new VyceLogger({ isDev: true }),
});

Usage

The logger supports all standard Nestjs logging levels log (info), warn, error, debug, verbose and they all act the same way, just change the logging level of the output.

You can pass as many parameters as you want to the logging function and based on the type of the parameter the logger will decide what to do with it. The order of them does not matter at all.

  • All string parameters will be concatenated to build a single log message logger.log("abc", "def") -> "abc def"
  • Error will be populated to a custom error object which will be logged out, all error metadata is logged out there as well
  • All other extra data is populated to a custom meta object which will be log out
import { Logger } from '@nestjs/common';

export class SomeClass {
  private readonly _logger = new Logger(SomeClass.name);

  this._logger.log("Some log message", {some: "meta data"})
  this._logger.log("Some log message", {some: "meta data"}, "second part of message")
  this._logger.error("Some log message", new Error("bla bla"))
  this._logger.error(new Error("bla bla"), "Some log message", {meta: "data"})

}

Example log:

npm.io

2.0.1

3 months ago

2.0.0

3 months ago

1.2.0

9 months ago