sshivananda/ts-sqs-consumer

View on GitHub
src/logger/Logger.ts

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
import winston from 'winston';

import LogLevels from './LogLevels';
import { ILogger } from './ILogger';

export default class Logger implements ILogger {
  // sets log level for the package
  private logLevel: LogLevels = LogLevels.debug;

  private loggerObj: winston.Logger;

  constructor(options: {
    logLevel?: LogLevels;
  }) {
    if (options.logLevel !== undefined) {
      this.logLevel = options.logLevel;
    }
    this.loggerObj = winston.createLogger({
      level: this.logLevel,
      format: winston.format.json(),
      transports: [
        new winston.transports.Console(),
      ],
    });
  }

  log(message: string, meta?: any): void {
    this.loggerObj.log(this.logLevel, message, meta);
  }
}