Я написал декоратор / оболочку для window.console
, чтобы я, среди прочего, мог отключить паразитные console.log
в своей производственной среде.
То, что я испытываю, - то, что моя обертка теперь появляется как источник фактической команды регистрации. Это затрудняет отладку через консоль, поскольку нажатие на ссылку в крайнем правом углу консоли приводит только к моей собственной функции вывода.
Следующий код является упрощенной версией реального сценария, в котором я удалил некоторые функции, такие как включение / отключение и кэширование / очистка скрытых строк.
//Save reference to original function
var oConsole = window.console;
//Create custom console output method
var wConsole = function (method) {
return function () {
if (!window.console[method].enabled) {
//Apply log command to original console method
oConsole[method].apply(oConsole, Array.from(arguments)); //This is the row i get linked to
}
};
};
//Create a new console object for overriding original functions
var overrides = {
o: oConsole,
log: wConsole("log"),
debug: wConsole("debug"),
info: wConsole("info"),
warn: wConsole("warn"),
error: wConsole("error")
}
//Using jQuery i create a new instance and extend my defined overrides onto the original version
window.console = $.extend({}, window.console, overrides);
console.log("test 123"); //This is the row i want to link to
Когда я нажимаю на ссылку справа ...
... я получаю ссылку на этот ряд.
Есть ли способ сделать функцию "прозрачной" таким образом, чтобы ссылка ссылалась на вызываемого объекта моей функции-обертки?
Решение должно работать только в Google Chrome, поскольку я выполняю большую часть своей разработки там.