2012-05-02 5 views
9

これは問題の質問です。Javascript Logging

ブラウザ(IE、FFなど)で実行されているJavaスクリプトアプリケーションにログを追加する場合はどうすればよいですか?私が理解しているように、クライアントホストにログファイルを保存することはできません。したがって、私は2つのオプションしか持っていません:新しいブラウザーウィンドウ(「blackbird」など)に自分のログ情報を表示するか、サーバーにログを送信します。

正しいですか?彼らは通常どのような種類のログを使用していますか?

答えて

10

クライアントホストにログファイルを「保存」することはできません。ウィンドウを開いてビジュアル化することはできますが、(Webアプリケーションを実行していると仮定します)では表示されません。

クライアント側のログを取得する必要がある場合は、AJAXを使用してサーバーに戻す必要があります。 Here's a blog post私はそれについて本当に気に入っていました。

+0

は、私は彼が絶対にそれらを取得する必要がありますと思いますか彼は悪意のある概念ではありません。そのポストのテクニックは完璧です^^現代のブラウザは実際にファイルを書くことができますし、ActiveXコンポーネントは常にそこにありました。クライアントが実行を許可した場合 – mschr

0

もう1つの可能性はjsnlogライブラリですhttp://js.jsnlog.com/ これにより、クライアント側のログをサーバーに送信できます。

0

https://log4sure.com(公開:私はそれを作成しました)を見てください - しかし、それは本当に便利で、チェックアウトして自分で決めてください。それはあなたがエラー/イベントを記録することができますし、カスタムログテーブルを作成することもできます。それは自分のサーバー上のすべてを保存するので、必要はありません。また、ログをリアルタイムで監視することもできます。そして最高の部分は、無料です。

あなたはまた、それをインストールする亭を使用することができ、使用亭がインストールlog4sure

設定コードがあまりにも本当に簡単です:

// setup 
 
var _logServer; 
 

 
(function() { 
 
    var ls = document.createElement('script'); 
 
    ls.type = 'text/javascript'; 
 
    ls.async = true; 
 
    ls.src = 'https://log4sure.com/ScriptsExt/log4sure.min.js'; 
 
    var s = document.getElementsByTagName('script')[0]; 
 
    s.parentNode.insertBefore(ls, s); 
 
    ls.onload = function() { 
 
    // use your token here. 
 
    _logServer = new LogServer("use-your-token-here"); 
 
    }; 
 
})(); 
 

 
// example for logging text 
 
_logServer.logText("your log message goes here.") 
 

 
//example for logging error 
 
divide = function(numerator, divisor) { 
 
    try { 
 
     if (parseFloat(value) && parseFloat(divisor)) { 
 
     throw new TypeError("Invalid input", "myfile.js", 12, { 
 
      value: value, 
 
      divisor: divisor 
 
     }); 
 
     } else { 
 
     if (divisor == 0) { 
 
      throw new RangeError("Divide by 0", "myfile.js", 15, { 
 
      value: value, 
 
      divisor: divisor 
 
      }); 
 
     } 
 
     } 
 
    } catch (e) { 
 
     _logServer.logError(e.name, e.message, e.stack); 
 

 
    } 
 
    } 
 
    // another use of logError in window.onerror 
 
    // must be careful with window.onerror as you might be overwriting some one else's window.onerror functionality 
 
    // also someone else can overwrite window.onerror. 
 
window.onerror = function(msg, url, line, column, err) { 
 
    // may want to check if url belongs to your javascript file 
 
    var data = { 
 
    url: url, 
 
    line: line, 
 
    column: column, 
 

 
    } 
 
    _logServer.logError(err.name, err.message, err.stack, data); 
 

 
}; 
 

 
// example for custom logs 
 
var foo = "some variable value"; 
 
var bar = "another variable value"; 
 
var flag = "false"; 
 
var temp = "yet another variable value"; 
 

 
_logServer.log(foo, bar, flag, temp);