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

Ita*_*Gal 9 javascript console logging

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

例如:

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

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

alert(doSomething());
Run Code Online (Sandbox Code Playgroud)

JSFiddle链接

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

Aud*_*bys 15

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

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

console.log = function() {
    logMessages.push.apply(logMessages, arguments);
    logBackup.apply(console, arguments);
};
Run Code Online (Sandbox Code Playgroud)

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

它会将所有console.log新消息推送到logMessages数组.