Logging
by langdonx
HTML
open your console
JavaScript
// define __stack
Object.defineProperty(window, '__stack', {
get: function(){
var orig = Error.prepareStackTrace;
Error.prepareStackTrace = function(_, stack){ return stack; };
var err = new Error();
Error.captureStackTrace(err, arguments.callee);
var stack = err.stack;
Error.prepareStackTrace = orig;
return stack;
}
});
// log function
function log(msg) {
var d = new Date(),
pad,
timeStamp;
pad = function (d) {
return d.toString().length == 1 ? '0' + d : d;
};
timeStamp = d.getFullYear() + '-' + pad(d.getMonth() + 1) + '-' + pad(d.getDate())
+ ' ' + pad(d.getHours()) + ':' + pad(d.getMinutes()) + ':' + pad(d.getSeconds() + '.' + d.getMilliseconds());
console.groupCollapsed('%c' + msg, 'font-weight: normal;');
console.log('from ' + __stack[2].getFileName() + ':' + __stack[2].getLineNumber());
console.log('at ' + timeStamp);
console.groupEnd();
}
(function () {
// ... lots of code
log('this statement has been logged');
}());
(function () {
// ... lots of code
// ... lots of code
// ... lots of code
// ... lots of code
// ... lots of code
log('this statement has also been been logged');
}());