Home Manual Reference Source Test Repository

lib/log.js

  1. /* eslint-disable no-console */
  2. import chalk from 'chalk';
  3. import activity from 'activity-logger';
  4.  
  5. let verboseMode = true;
  6. let isSilent = false;
  7.  
  8. export default {
  9. setLogLevel(logLevel) {
  10. verboseMode = logLevel === 'verbose';
  11. },
  12.  
  13. setSilent(newSilent = false) {
  14. isSilent = newSilent;
  15. },
  16.  
  17. info(...args) {
  18. const prefix = `${chalk.green('info')}:\t`;
  19. args.unshift(prefix);
  20. console.log(...args);
  21. },
  22.  
  23. warn(...args) {
  24. if (!verboseMode) {
  25. return;
  26. }
  27. const prefix = `${chalk.yellow('warn')}:\t`;
  28. args.unshift(prefix);
  29. console.log(...args);
  30. },
  31.  
  32. error(...args) {
  33. const prefix = `${chalk.red('error')}:\t`;
  34. args.unshift(prefix);
  35. console.log(...args);
  36. },
  37.  
  38. startActivity(name) {
  39. if (isSilent) {
  40. return -1;
  41. }
  42. return activity.start(name);
  43. },
  44.  
  45. endActivity(id) {
  46. if (isSilent) {
  47. return true;
  48. }
  49. return activity.end(id);
  50. },
  51. };