一尘不染

计数console.log对象

json

下面的代码将控制台日志打印到页面上。它记录来自服务器的获取和响应,例如:

14:15:17 GMT+0000 (GMT Standard Time) Submitting HTTP GET request to http...
14:15:22 GMT+0000 (GMT Standard Time) Received HTTP response: {..
14:15:17 GMT+0000 (GMT Standard Time) Submitting HTTP GET request to http...
14:15:22 GMT+0000 (GMT Standard Time) Received HTTP response: {..

与其将这些内容显示在页面上,我不希望计算每个响应和请求,因此您会看到一个从1开始到结束为止的数字,可以是任何数字。这是为了向用户显示正在发生的事情,而没有向他们显示所有响应并获取数据。

        function logHttpResponse(response) {
        var now = new Date();
        var logger = document.getElementById('log');
        var logMessage = now.toTimeString() + " Received HTTP response: " + JSON.stringify(response);
        console.log = function (logMessage) {
            if (typeof logMessage == 'object') {
                logger.innerHTML += (JSON && JSON.stringify ? JSON.stringify(logMessage) : String(logMessage)) + '<br />';
            } else {
                logger.innerHTML += logMessage + '<br />';
            }
        }
    }

和html:

<div id="log"></div>

阅读 298

收藏
2020-07-27

共1个答案

一尘不染

如果您只想覆盖console.log以打印响应计数,则应该这样做,但这将增加任何console.log呼叫的计数。

var logCount = 0

console.log = function (logMessage) {
    var logger = document.getElementById('log');
    logCount++;
    logger.innerHTML = logCount;
}

如果您希望依靠响应而不是所有控制台日志,请使用类似以下的内容

var logCount = 0

function logHttpResponse(response) {
    var logger = document.getElementById('log');
    logCount++;
    logger.innerHTML = logCount;
}
2020-07-27