весь-весьма странным образом но можно.
Есть класс Error выбрасывающий исключение, в секции catch будет объект Error у котрого будет поле стэка. Не хитрыми манипуляциями со строкой, можно получить нужное.
function patchConsole() {
window.oldConsole = window.console;
var myConsole = {
getStack: function() {
try {
throw Error('CustomError');
} catch(e) {
return e.stack;
}
},
log: function(data) {
let stack = this.getStack();
let s = `<p>${data} at ${stack.split(' at ')[3]}</p>`; //0 - info stack start, 1 - getStack, 2 - this function, 3 - calle function
$('div.myconsole').append(s);
oldConsole.log(s);
}
}
window.console = myConsole;
}
function dummyFunction() {
console.log('Dummu called a custom log!');
}
patchConsole();
dummyFunction();
dummyFunction укажет на console.log внутри себя.