为了账号安全,请及时绑定邮箱和手机立即绑定

捕获javascript console.log?

捕获javascript console.log?

繁花不似锦 2019-08-27 16:21:59
捕获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. 第1行将您的函数包装在一个闭包中,因此没有其他函数可以直接访问oldLog(出于可维护性的原因)。

  2. 第2行捕获原始方法。

  3. 第3行创建了一个新功能。

  4. 第4行是您发送message到服务器的位置。

  5. 第5行调用最初处理的原始方法。

apply使用这样我们就可以调用它 console使用原来的参数。简单地调用oldLog(message)会失败,因为它log取决于它的关联console


更新下面的每个zzzzBov的评论,在IE9 console.log中实际上并不是一个函数,所以oldLog.apply会失败。有关更多详细信息,请参阅console.log.apply无法在IE9中运行。


查看完整回答
反对 回复 2019-08-27
  • 2 回答
  • 0 关注
  • 368 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信