简体   繁体   中英

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

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.

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, ie you can add multiple log messages with a single call.

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

for security issues, there is no api to read the history of console.log().

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM