console.js 815 B

12345678910111213141516171819202122232425262728293031323334353637
  1. 'use strict';
  2. var util = require('util');
  3. var utils = require('../utils');
  4. module.exports = function(Raven, console, originals) {
  5. var wrapConsoleMethod = function(level) {
  6. if (!(level in console)) {
  7. return;
  8. }
  9. utils.fill(
  10. console,
  11. level,
  12. function(originalConsoleLevel) {
  13. var sentryLevel = level === 'warn' ? 'warning' : level;
  14. return function() {
  15. var args = [].slice.call(arguments);
  16. Raven.captureBreadcrumb({
  17. message: util.format.apply(null, args),
  18. level: sentryLevel,
  19. category: 'console'
  20. });
  21. originalConsoleLevel.apply(console, args);
  22. };
  23. },
  24. originals
  25. );
  26. };
  27. ['debug', 'info', 'warn', 'error', 'log'].forEach(wrapConsoleMethod);
  28. return console;
  29. };