Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Simple fork of console.log with call location to add grouping. Grouping helps cut down on the visual noise in the log.
/**
* Console.log with call location and grouping to reduce log noise.
* Apply directly to code once.
*
* Original: http://remysharp.com/2014/05/23/where-is-that-console-log/
*/
var groupable = typeof console.groupCollapsed !== 'undefined';
['log', 'warn'].forEach(function(method) {
var old = console[method];
console[method] = function() {
var stack = (new Error()).stack.split(/\n/);
// Chrome includes a single "Error" line, FF doesn't.
if (stack[0].indexOf('Error') === 0) {
stack = stack.slice(1);
}
var args = [].slice.apply(arguments).concat([stack[1].trim()]);
if (groupable) {
console.groupCollapsed.apply(console, arguments);
var ret = old.call(console, stack[1].trim());
console.groupEnd();
return ret;
} else {
return old.apply(console, args);
}
};
@remy

This comment has been minimized.

Copy link

remy commented May 28, 2014

Code seems to stop short - certainly missing the closing on the forEach

@kjellski

This comment has been minimized.

Copy link

kjellski commented May 30, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.