Conditional Logging: Difference between revisions
From GreaseSpot Wiki
Jump to navigationJump to search
No edit summary |
→Alternative 4: removed because "if (!console)" makes no sense in a GM script, and the usage of unsafeWindow is _not_ a good example |
||
(One intermediate revision by one other user not shown) | |||
Line 48: | Line 48: | ||
}; | }; | ||
} | } | ||
</pre> | </pre> | ||
[[Category:Coding Tips]] | [[Category:Coding Tips]] |
Latest revision as of 16:39, 3 July 2010
Provide a single easy switch to control whether debugging information is output.
Alternative 1
const DEBUG = true; function debug() { if (DEBUG && console) { console.log.apply(this, arguments); } }
var links = document.links; debug("Links: %o", links);
Alternative 2
A slightly simpler method that lets you use more of the Firebug console's routines.
const DEBUG = 1; var _orig_console = console; var console = { log: function (text) { if (DEBUG) _orig_console.log(text); }, info: function (text) { if (DEBUG) _orig_console.info(text); }, warn: function (text) { if (DEBUG) _orig_console.warn(text); }, error: function (text) { if (DEBUG) _orig_console.error(text); } };
Alternative 3
An even simpler option, retaining all of Firebug's console routines, and not interfering with additional parameters.
const DEBUG = 1; if (!DEBUG) { var console = { log: function() {}, info: function() {}, warn: function() {}, error: function() {}, }; }