将console.log的浏览器导入数据

时间:2017-07-16 17:15:28

标签: javascript php ajax server console.log

我在javascript / php上有一个web应用程序,我正在创建一个bug查找器功能,前端有一个用户可以通知错误的按钮。 当前功能:

function bug_finder(){

    var txt = document.getElementById('bug_txt').value;

    if(txt==''){
        alert_fail('Um campo ficou vazio!');
        return;
    }

    var DATA = { acao:'bug_finder', txt:txt, log:console.log };

    console.log( JSON.stringify(DATA) );

    $.ajax({
        type: "POST",
        url: 'dash_acao.php',
        timeout:2000,
        data: DATA,
        success: function(response){

            console.log(response);
            alert_sucesso('');

        },
        error: function(response){
            alert_fail('');
        }
    });

}

ajax将浏览器的console.log内容发送到php文件,在那里我进行数据库更新并在服务器中创建日志文件,以便查找。

到目前为止,我还没有找到一种方法将console.log从浏览器转换为数据,所以我可以操作。

2 个答案:

答案 0 :(得分:0)

您可以使用自定义功能覆盖console.log。请参阅下面的代码段。请注意,console.log的参数计数没有限制,因此最终会有阵列数组。



// remember original console.log
const origLog = console.log;
// here, the contents of console.log will be stored
let consoleBuffer = [];

// replace console.log with own function
console.log = function (...args) {
   // I would not store an infinite amount of entries,
   // so remove oldest one if 10 stored
   if (consoleBuffer.length === 10) consoleBuffer.pop();
   
   // remember
   consoleBuffer.push(args);
   
   // call original function
   origLog.apply(console, args);
};

console.log('foo');
let err = 'unknown error';
console.log('An error occured: ', err);
// use warn since this was not replaced
console.warn(consoleBuffer);




编辑(ES5代码)



'use strict';

// remember original console.log
var origLog = console.log;
// here, the contents of console.log will be stored
var consoleBuffer = [];

// replace console.log with own function
console.log = function () {
   var args = Array.prototype.slice.call(arguments);
   
   // I would not store an infinite amount of entries,
   // so remove oldest one if 10 stored
   if (consoleBuffer.length === 10) consoleBuffer.pop();

   // remember
   consoleBuffer.push(args);

   // call original function
   origLog.apply(console, args);
};

console.log('foo');
var err = 'unknown error';
console.log('An error occured: ', err);
// use warn since this was not replaced
console.warn(consoleBuffer);




答案 1 :(得分:0)

您无法获取在console.log()中打印的数据。 我不明白为什么你需要它。而不是使用console.log()打印它,你可以“操纵”响应? 或者如果你想将它放到另一个php / html文件中,只需发送它即可。