logger.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. 'use strict';
  2. const { loggerOptions, noAWS } = require('./config');
  3. function TestLogger() {}
  4. // intentionally disable logging during testing
  5. TestLogger.prototype.info = () => undefined;
  6. TestLogger.prototype.fatal = () => undefined;
  7. TestLogger.prototype.warn = () => undefined;
  8. // uncomment to see logs during tests
  9. // // eslint-disable-next-line no-console
  10. // TestLogger.prototype.info = () => console.log;
  11. // // eslint-disable-next-line no-console
  12. // TestLogger.prototype.fatal = () => console.error;
  13. // // eslint-disable-next-line no-console
  14. // TestLogger.prototype.warn = () => console.log;
  15. // console logging when running outside AWS
  16. function ConsoleLogger() {}
  17. // eslint-disable-next-line no-console
  18. ConsoleLogger.prototype.info = console.log;
  19. // eslint-disable-next-line no-console
  20. ConsoleLogger.prototype.fatal = console.error;
  21. // eslint-disable-next-line no-console
  22. ConsoleLogger.prototype.warn = console.log;
  23. let logger;
  24. switch (process.env.NODE_ENV) {
  25. case 'production':
  26. case 'development':
  27. if (noAWS === 'true') {
  28. logger = new ConsoleLogger();
  29. } else {
  30. logger = require('@hw/kinesis-logger')(loggerOptions);
  31. }
  32. break;
  33. default:
  34. logger = new TestLogger();
  35. }
  36. logger.info('Logger initialized');
  37. module.exports = logger;