Conditional Logging: Difference between revisions
From GreaseSpot Wiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
Line 62: | Line 62: | ||
c = unsafeWindow.console, | c = unsafeWindow.console, | ||
cfn = ['log','debug','info','warn','error','assert','dir','dirxml','trace','group','groupCollapsed','groupEnd','time','timeEnd','profile','profileEnd','count','exception','table']; | cfn = ['log','debug','info','warn','error','assert','dir','dirxml','trace','group','groupCollapsed','groupEnd','time','timeEnd','profile','profileEnd','count','exception','table']; | ||
for(var i=0,l=cfn.length; i<l; i++) { | for (var i=0,l=cfn.length; i<l; i++) { | ||
console[cfn[i]] = function() { | console[cfn[i]] = function() { | ||
if (DEBUG && c) | if (DEBUG && c) |
Revision as of 04:11, 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() {}, }; }
Alternative 4
THE SIMPLEST option, so simple that it's actually kinda more complicated...
But it encapsulates all of Firebug's functionality.
const DEBUG = 1; if (!console) console = function() { var console = {}, c = unsafeWindow.console, cfn = ['log','debug','info','warn','error','assert','dir','dirxml','trace','group','groupCollapsed','groupEnd','time','timeEnd','profile','profileEnd','count','exception','table']; for (var i=0,l=cfn.length; i<l; i++) { console[cfn[i]] = function() { if (DEBUG && c) c[cfn[i]].apply(null, arguments) } } return console; }();