我试图在纯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());
请注意,我不需要提醒日志 - 这只是测试功能的一个简单示例。我必须对日志的内容进行一些操作。
答案 0 :(得分:14)
您可以在使用之前覆盖console.log
方法:
var logBackup = console.log;
var logMessages = [];
console.log = function() {
logMessages.push.apply(logMessages, arguments);
logBackup.apply(console, arguments);
};
使用apply
和arguments
可以保留正确的console.log
行为,即您可以通过一次调用添加多条日志消息。
它会将所有新的console.log
邮件推送到logMessages
数组。