wkdhkr/dedupper

View on GitHub
src/helpers/LoggerHelper.js

Summary

Maintainability
A
0 mins
Test Coverage
// @flow
import log4js from "log4js";
import EnvironmentHelper from "./EnvironmentHelper";
import type { Logger } from "../types";

export default class LoggerHelper {
  static flush(): Promise<void> {
    if (EnvironmentHelper.isTest()) {
      return Promise.resolve();
    }
    return new Promise((resolve, reject) => {
      log4js.shutdown(err => {
        if (err) {
          reject(err);
        }
        resolve();
      });
    });
  }

  static configure(config: Object) {
    if (EnvironmentHelper.isTest()) {
      return;
    }
    log4js.configure(config);
  }

  static getLogger(clazz: Object): Logger {
    if (EnvironmentHelper.isTest()) {
      return ({
        level: "info",
        trace: () => {},
        debug: () => {},
        info: () => {},
        warn: () => {},
        fatal: () => {}
      }: any);
    }
    const logger = log4js.getLogger(`${clazz.constructor.name}`);
    return logger;
  }
}