How to get the console.log content as string in Ja

2019-02-13 06:01发布

I'm trying to get the console.log as string in pure JavaScript. My input is a script, which I'm not familiar with, and I want to collect all the messages in the console.log into a string.

For example:

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

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

alert(doSomething());

JSFiddle link

Note that I do not need to alert the log - this is just a simple example of testing the functionality. I'll have to do some operations on the log's content.

1条回答
甜甜的少女心
2楼-- · 2019-02-13 06:14

You could overwrite console.log method before using it:

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

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

Using apply and arguments preserves the correct console.log behaviour, i.e. you can add multiple log messages with a single call.

It will push all new console.log messages to logMessages array.

查看更多
登录 后发表回答