捕获javascript console.log?当我的JS应用程序写入console.log时,我想捕获该日志消息,以便我可以将AJAX记录输出到服务器。我怎么做?写入日志的代码来自外部服务,这就是我不能直接使用它的原因。
2 回答
宝慕林4294392
TA贡献2021条经验 获得超8个赞
您可以通过以下方式劫持JavaScript函数:
(function(){ var oldLog = console.log; console.log = function (message) { // DO MESSAGE HERE. oldLog.apply(console, arguments); };})();
第1行将您的函数包装在一个闭包中,因此没有其他函数可以直接访问
oldLog
(出于可维护性的原因)。第2行捕获原始方法。
第3行创建了一个新功能。
第4行是您发送
message
到服务器的位置。第5行调用最初处理的原始方法。
apply
使用这样我们就可以调用它在 console
使用原来的参数。简单地调用oldLog(message)
会失败,因为它log
取决于它的关联console
。
更新下面的每个zzzzBov的评论,在IE9 console.log
中实际上并不是一个函数,所以oldLog.apply
会失败。有关更多详细信息,请参阅console.log.apply无法在IE9中运行。
添加回答
举报
0/150
提交
取消