@vyce/logger
v2.0.1
Published
Logger for Node
Downloads
19
Readme
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: