重複の可能性:
Chrome で console.log への呼び出しを傍受
する
私の JS アプリが に書き込むとき、console.log
そのログ メッセージをキャプチャして、出力をサーバーに記録する AJAX を実行できるようにします。それ、どうやったら出来るの?
ログに書き込むコードは外部サービスからのものです。そのため、直接 ajax することはできません。
重複の可能性:
Chrome で console.log への呼び出しを傍受
する
私の JS アプリが に書き込むとき、console.log
そのログ メッセージをキャプチャして、出力をサーバーに記録する AJAX を実行できるようにします。それ、どうやったら出来るの?
ログに書き込むコードは外部サービスからのものです。そのため、直接 ajax することはできません。
次の方法で JavaScript 関数を乗っ取ることができます。
(function(){
var oldLog = console.log;
console.log = function (message) {
// DO MESSAGE HERE.
oldLog.apply(console, arguments);
};
})();
oldLog
(保守性の理由から)。message
は、サーバーに送信する場所です。apply
元の引数を使用して呼び出す ことができるように使用されます。との関連付けに依存するため、console
単純に呼び出すoldLog(message)
と失敗します。log
console
更新以下の zzzzBov のコメントによると、IE9console.log
では実際には関数ではないため、oldLog.apply
失敗します。詳細については、console.log.apply が IE9で機能しないを参照してください。
単純:
function yourCustomLog(msg) {
//send msg via AJAX
}
window.console.log = yourCustomLog;
console
オブジェクト全体をキャプチャーconsole.info
などにオーバーライドしたい場合がありますconsole.warn
。
window.console = {
log : function(msg) {...},
info : function(msg) {...},
warn : function(msg) {...},
//...
}