如何在JavaScript中将console.log内容作为字符串获取

时间:2014-06-05 06:08:12

标签: javascript logging console

我试图在纯JavaScript中将console.log作为字符串。 我的输入是一个我不熟悉的脚本,我想将console.log中的所有消息收集到一个字符串中。

例如:

function doSomething(){
    console.log("start");
    console.log("end");
    var consoleLog = getConsoleLog();
    return consoleLog;
}

function getConsoleLog(){
    // How to implement this?
}

alert(doSomething());

JSFiddle link

请注意,我不需要提醒日志 - 这只是测试功能的一个简单示例。我必须对日志的内容进行一些操作。

1 个答案:

答案 0 :(得分:14)

您可以在使用之前覆盖console.log方法:

var logBackup = console.log;
var logMessages = [];

console.log = function() {
    logMessages.push.apply(logMessages, arguments);
    logBackup.apply(console, arguments);
};

使用applyarguments可以保留正确的console.log行为,即您可以通过一次调用添加多条日志消息。

它会将所有新的console.log邮件推送到logMessages数组。