JavaScript で console.log の内容を文字列として取得する方法 質問する

JavaScript で console.log の内容を文字列として取得する方法 質問する

私は純粋な 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 リンク

ログに警告を出す必要がないことに注意してください。これは単に機能をテストする単純な例です。ログの内容に対していくつかの操作を行う必要があります。

ベストアンサー1

使用する前にメソッドを上書きすることができますconsole.log:

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

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

と を使用するapplyarguments正しいconsole.log動作が維持されます。つまり、1 回の呼び出しで複数のログ メッセージを追加できます。

console.logすべての新しいメッセージを配列にプッシュしますlogMessages

おすすめ記事