Conditional Logging: Difference between revisions

From GreaseSpot Wiki
Jump to navigationJump to search
(Created page with 'Provide a single easy switch to control whether debugging information is output. == Alternative 1 == <pre class='sample'> const DEBUG = true; function debug() { if (DEBUG &&…')
 
(→‎Alternative 4: removed because "if (!console)" makes no sense in a GM script, and the usage of unsafeWindow is _not_ a good example)
 
(2 intermediate revisions by one other user not shown)
Line 38: Line 38:
An even simpler option, retaining all of Firebug's console routines, and not interfering with additional parameters.
An even simpler option, retaining all of Firebug's console routines, and not interfering with additional parameters.


<pre class='sample-good'>
<pre class='sample'>
const DEBUG = 1;
const DEBUG = 1;
if (!DEBUG) {
if (!DEBUG) {

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() {},
  };
}