debugLogger.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. if (typeof window !== "undefined") {
  2. if(! window.error_handler_installed) {
  3. window.error_handler_logs = [];
  4. const handler = ((old) => ({
  5. get: (_, name) => {
  6. function passf() {
  7. old[name].apply(null, arguments);
  8. }
  9. function logf() {
  10. window.error_handler_logs.push({
  11. type: name,
  12. ts: +new Date,
  13. arguments,
  14. });
  15. passf.apply(null, arguments);
  16. }
  17. switch (name) {
  18. case 'log':
  19. case 'debug':
  20. case 'info':
  21. case 'warn':
  22. case 'error':
  23. return logf;
  24. default:
  25. return passf;
  26. }
  27. }
  28. }))(window.console);
  29. window.console = new Proxy({}, handler);
  30. window.addEventListener("error", (e) => {
  31. console.error(`Error occurred: ${e.error.message} ${e.error.stack}`);
  32. return false;
  33. });
  34. window.addEventListener("unhandledrejection", (e) => {
  35. console.error(`Unhandled rejection: ${e.message}`);
  36. return false;
  37. });
  38. window.error_handler_installed = true;
  39. }
  40. }