logger.js 925 B

1234567891011121314151617181920212223242526272829303132333435
  1. import {indexOf} from './utils';
  2. let logger = {
  3. methodMap: ['debug', 'info', 'warn', 'error'],
  4. level: 'info',
  5. // Maps a given level value to the `methodMap` indexes above.
  6. lookupLevel: function(level) {
  7. if (typeof level === 'string') {
  8. let levelMap = indexOf(logger.methodMap, level.toLowerCase());
  9. if (levelMap >= 0) {
  10. level = levelMap;
  11. } else {
  12. level = parseInt(level, 10);
  13. }
  14. }
  15. return level;
  16. },
  17. // Can be overridden in the host environment
  18. log: function(level, ...message) {
  19. level = logger.lookupLevel(level);
  20. if (typeof console !== 'undefined' && logger.lookupLevel(logger.level) <= level) {
  21. let method = logger.methodMap[level];
  22. if (!console[method]) { // eslint-disable-line no-console
  23. method = 'log';
  24. }
  25. console[method](...message); // eslint-disable-line no-console
  26. }
  27. }
  28. };
  29. export default logger;