2011-11-28 5 views
9

ログ出力をサポートしていないプラットフォームでJavaScriptアプリケーションを開発中です。ロガー出力の新しいウィンドウを開くことができず、FirebugやSafariデバッガのようなものはありません。JavaScript AJAXリモートロガー

これまではfloating <div>z-index 2に使用していましたが、内部にテキストを記録しましたが、これでは十分ではありません。私は最近、N. Zakasのこのプレゼンテーションにつまずいたし、そこに説明手法を実装し...いくつかの軽量のJavaScript JSONPロガーといくつかのPHPやTomcatサーバーの対応のために

おかげ ステン

答えて

13

を探しています。それは非常にシンプルですが、私見

http://www.slideshare.net/nzakas/enterprise-javascript-error-handling-presentation

非常に効果的なアイデアは、単にサーバー側のコンポーネントへの呼び出しを発行することです(私は、.NETハンドラを使用しますが、それは同様のphpファイルである可能性が)一部をとりますparam、param値を記録し、1x1のイメージストリームを返します。私が一番気に入っているのは、ajaxコールを全く必要としないということです。次のように

プレゼンテーションからのコードは次のとおりです。

function log(severity, message) { 
     var img = new Image(); 
     img.src = "log.php?sev=" + encodeURIComponent(severity) + 
     "&msg=" + encodeURIComponent(message); 
    } 

    log(1, "something bad happened"); 
+0

うわー!あなたはそれのためのいくつかのサーバー側の実装を持っていますか?一部のphp/tomcatサーブレットにUIスクリプトが表示されていますか?サーバー側にも便利です... – STeN

+0

残念ながら、phpコードはありませんが、非常にシンプルでなければなりません。パラメータを取得してログハンドラを呼び出すだけです。 – mamoo

+1

私はimg.src ** = ** "log.php"でなく、img.src ** + ** log.phpであるべきだと思います。 –

3

独自のサーバのログをホスティングする代わりに、JSConsole.comかもしれません。 JavaScript用の汎用リモートデバッガです。リスナーを登録し、生成したスクリプトタグをページに貼り付けてから、任意のデバイス上のインスタンスを起動してください。デバッガは双方向ですので、ログがJSConsole上のリモートコンソールに転送されるだけでなく、リモートクライアント上のJS環境に完全にアクセスできます。