簡體   English   中英

如何覆蓋/攔截console.log並將原始日志輸出到控制台

[英]How to overwrite / intercept console.log and output original log to console

我試圖攔截console.log並將其寫入數組以以編程方式訪問日志。 這應該是跨瀏覽器兼容的。

window["log"]=[];
var logger = console.log;
console.log = function() {
  window["log"].push({arguments});
  // neither seems to output as original
  logger( arguments );
  logger.call ( arguments );
  logger.call ( console, arguments );
  logger.apply ( arguments );
}

我的問題是logger( arguments)總是將一個數組寫入控制台,而不是原始消息。 如何使控制台輸出帶有原始行號和文件的原始消息?

您正在尋找:

logger.apply(console, arguments);

......這就要求與原來的功能, this組以console ,並與arguments展開為離散變量。


旁注:如果要廣泛兼容,則需要在此處替換ES2015 +代碼:

window["log"].push({arguments});

與ES5兼容的代碼:

window["log"].push({arguments: arguments});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM