openlayers.console.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /**
  2. * Logging implementation that logs using the browser's logging API.
  3. * Falls back to doing nothing in case no such API is available. Simulates
  4. * the presence of Firebug's console API in Drupal.openlayers.console.
  5. */
  6. (function ($, Drupal) {
  7. "use strict";
  8. var api = {};
  9. var logger;
  10. if (((typeof console === 'object' && typeof console !== 'null') || typeof console === 'function') && typeof console.log === 'function') {
  11. logger = function () {
  12. // Use console.log as fallback for missing parts of API if present.
  13. console.log.apply(console, arguments);
  14. };
  15. }
  16. else {
  17. logger = function () {
  18. // Ignore call as no logging facility is available.
  19. };
  20. }
  21. $([
  22. "log",
  23. "debug",
  24. "info",
  25. "warn",
  26. "exception",
  27. "assert",
  28. "dir",
  29. "dirxml",
  30. "trace",
  31. "group",
  32. "groupEnd",
  33. "groupCollapsed",
  34. "profile",
  35. "profileEnd",
  36. "count",
  37. "clear",
  38. "time",
  39. "timeEnd",
  40. "timeStamp",
  41. "table",
  42. "error"
  43. ]).each(function (index, functionName) {
  44. if (console !== undefined && typeof console[functionName] !== 'function') {
  45. // Use fallback as browser does not provide implementation.
  46. api[functionName] = logger;
  47. }
  48. else {
  49. api[functionName] = function () {
  50. // Use browsers implementation.
  51. console[functionName].apply(console, arguments);
  52. };
  53. }
  54. });
  55. Drupal.openlayers.console = api;
  56. }(jQuery, Drupal));