Есть ли способ перехватить аргументы вызова console.log до или после того, как они произошли? - PullRequest
0 голосов
/ 25 января 2019

Я хочу инициировать некоторые действия после console.log вызовов, но я не хочу переопределять console.log само по себе, потому что я не хочу терять позицию журнала.

Я ищу, как сделатьэто и Proxys выглядел хорошо, но использовал их и попытался:

var consoleLogProxyHandler = {
    apply: function (target, thisArg, argumentsList) {
        return target.apply(void 0, argumentsList);
    }
};
var consoleLogProxy = new Proxy(console.log, consoleLogProxyHandler);
console.warn("this is line 7");
consoleLogProxy("this is line 3 :(");

, но я все еще теряю позицию консоли.

enter image description here

Если я прокси просто консоль и слушаю логи, а затем возвращаю console['callKey'] Я не теряю позицию, НО я не получаюаргументы (это текст, переданный на консоль).

Так что теперь я думаю, есть ли способ вызвать какое-либо событие или подобное после того, как console.log был сделан, но я не нахожу ничего связанного.

Существует ли подобная опция?

Редактировать: Требуемая функциональность:

1.  onConsoleLog(message) {
2.   // I have here the args
3.     maybeAServerLog('the user logged ' + message)
4.  }
5. 
6.  // some magic here...
7. 
8.  console.log('hello');
9.  hello                  - script.js line 8
10. the user logged hello  - script.js line 3
...