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

标签 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

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

最佳答案

您可以在使用之前覆盖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 数组。

关于javascript - 如何在 JavaScript 中将 console.log 内容作为字符串获取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24052775/

相关文章:

java - 我在哪里可以在 JUnit 测试类中配置 log4j?

java - Java 控制台应用程序中使用 Windows "cls"命令清屏

php - 如何在客户端获取页面 HTML 或 javascript

c# - NLog 的 MongoDb 目标

logging - logback 是否支持 log4j 附加程序?

c++ - 从 DLL 写入控制台

c - 如何以编程方式从 C 中的 winMain 弹出控制台?

javascript - 如何从对象数组中读取属性值?

javascript - 如何使用 XMLHTTPRequest 处理 CSRF token ?

javascript - 使用 CSS 在 HTML 中模糊 Img 和 Div