1.0.1 • Published 2 years ago

@opengeekslab_llc/nest-custom-logger v1.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

nest-custom-logger

Provides logger and request middleware for NestJS and express application.

Output examples

Styled Example

Logs

Styled Example

Http logs

Styled Example

Json Example

Logs

Json Example

Http logs

{"type":"http","context":"Request","message":"::ffff:192.168.88.107 - POST /auth/signin - 400 [Bad Request] (0b sent in 21 ms)","requestData":{"clientIp":"::ffff:192.168.88.107","method":"POST","originalUrl":"/auth/signin","statusCode":400,"statusMessage":"Bad Request","contentSize":0,"responseTime":21}}

Usage

Simple usage

import { Logger } from '@opengeekslab_llc/nest-custom-logger';

const logger = new (Logger(!process.env.NODE_ENV))('Hello');
logger.log('World')

Usage in classes

function CustomLogger(context: string) {
  return new (Logger(!process.env.NODE_ENV))(context);
}

class Test {
  logger = CustomLogger('Test');

  run() {
    this.logger.log('log');
    this.logger.error('error');
  }
}

Usage for not ts projects

const { Logger } = require('@opengeekslab_llc/nest-custom-logger');

const logger = new (Logger(!process.env.NODE_ENV))('Hello');
logger.log('World')

Usage of middleware for express

const express = require('express');
const { requestLoggerMiddleware } = require('@opengeekslab_llc/nest-custom-logger');
const app = express();

const requestWriteLogs = CustomLogger('Request');

const requestLogger = requestLoggerMiddleware({
    writeLog: requestWriteLogs.http,
});

app.use(requestLogger);

Real usage

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { Logger, requestLoggerMiddleware } from '@opengeekslab_llc/nest-custom-logger';

const port = 8000;

function CustomLogger(context: string) {
  return new (Logger(!process.env.NODE_ENV))(context);
}

const requestWriteLogs = CustomLogger('Request');

const requestLogger = requestLoggerMiddleware({
  regexs: [/\/api*/g],
  urlsWithDisabledLogs: ['/', '/health'],
  dataToPickFromRequest: ['headers.user-agent'],
  writeLog: requestWriteLogs.http,
});

async function bootstrap() {
  const logger = CustomLogger('NEST');

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

  // use this middleware to show http logs in your console
  app.use(requestWriteLogs);

  await app.listen(port);

  logger.log(`app is listening on port ${port}`);
}

bootstrap();
1.0.1

2 years ago

1.0.0

2 years ago

0.4.4

2 years ago

0.4.1

2 years ago

0.4.0

2 years ago

0.4.2

2 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.0

3 years ago

0.2.5

3 years ago

0.2.4

3 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.2

3 years ago

0.1.0

3 years ago