2011-07-26 15 views
7

私はテストのためにいくつかのユーザーに展開される予定のWebアプリケーションに取り組んでいます。明らかにバグになるので、修正プログラムを開発しやすくするためにバグを取りたいと思います。 Webアプリケーションでコンソールメッセージ(ブラウザ/ jsエラーとconsole.logで生成されたメッセージの両方)を傍受する方法があるので、それらをサーバー上のログサービスに送信してデバッグできるようにしますか?ウェブブラウザのコンソールメッセージを傍受する

答えて

5

はい。

インターセプトconsole.log()コール:

console['log'] = function(msg){ 
    // do wahtever you need with msg here 
} 

インターセプト誤差は(そうおむつアンチパターンと呼ばれる):jsfiddle:ここ

try { 
    // your app's code 
} catch(err) { 
    // do what you to do in case of error need here 
} 

が証明です。

しかし、私は独自の関数を作成することをお勧めします。これはconsole.log()の目的を扱い、生産時にはオフにすることができます。さらに、ブラウザがconsole.log()呼び出しをサポートしていない場合、正常に動作します(つまり、エラーは発生しません)。これは、次のようになります。

window['log'] = function(msg){ 
    if (typeof console != 'undefined' && typeof console.log != 'undefined'){ 
     console.log(msg); 
    } 
} 
+0

IE7でこの作業を行う方法についてのヒントもありますか?私はちょうどあなたの答えで提供する最後のスニペットを追加しましたが、コンソールはまだIE7で定義されていません。 –

1

少し遅れて...これはただのサーバーに送信する方法を実装する必要があるが、それは些細だ、面白い読み取ることができます。 Taking Over console.log

関連する問題