/* eslint-disable no-console */
log = ( function () {
- // Also update the restoration of methods in mediawiki.log.js
- // when adding or removing methods here.
+ /**
+ * Write a verbose message to the browser's console in debug mode.
+ *
+ * This method is mainly intended for verbose logging. It is a no-op in production mode.
+ * In ResourceLoader debug mode, it will use the browser's console if available, with
+ * fallback to creating a console interface in the DOM and logging messages there.
+ *
+ * See {@link mw.log} for other logging methods.
+ *
+ * @member mw
+ * @param {...string} msg Messages to output to console.
+ */
var log = function () {},
console = window.console;
+ // Note: Keep list of methods in sync with restoration in mediawiki.log.js
+ // when adding or removing mw.log methods below!
+
/**
+ * Collection of methods to help log messages to the console.
+ *
* @class mw.log
* @singleton
*/
/**
- * Write a message to the console's warning channel.
- * Actions not supported by the browser console are silently ignored.
+ * Write a message to the browser console's warning channel.
+ *
+ * This method is a no-op in browsers that don't implement the Console API.
*
* @param {...string} msg Messages to output to console
*/
$.noop;
/**
- * Write a message to the console's error channel.
+ * Write a message to the browser console's error channel.
+ *
+ * Most browsers also print a stacktrace when calling this method if the
+ * argument is an Error object.
*
- * Most browsers provide a stacktrace by default if the argument
- * is a caught Error object.
+ * This method is a no-op in browsers that don't implement the Console API.
*
* @since 1.26
* @param {Error|...string} msg Messages to output to console
$.noop;
/**
- * Create a property in a host object that, when accessed, will produce
+ * Create a property on a host object that, when accessed, will produce
* a deprecation warning in the console.
*
* @param {Object} obj Host object of deprecated property
return mw.message.apply( mw.message, arguments ).toString();
},
- /**
- * No-op dummy placeholder for {@link mw.log} in debug mode.
- *
- * @method
- */
+ // Expose mw.log
log: log,
/**
var original = mw.log,
slice = Array.prototype.slice;
- /**
- * Logs a message to the console in debug mode.
- *
- * In the case the browser does not have a console API, a console is created on-the-fly by appending
- * a `<div id="mw-log-console">` element to the bottom of the body and then appending this and future
- * messages to that, instead of the console.
- *
- * @member mw.log
- * @param {...string} msg Messages to output to console.
- */
mw.log = function () {
// Turn arguments into an array
var args = slice.call( arguments ),