1

プレーンな html (5) + css (3) + js (フレームワークを使用しない) を使用してアプリケーションを開発しています。問題、JavaScript のデバッグに遭遇しました。検索すると、log4javascript にたどり着きました。私のQは:

デモから、特定の html ページでの使用方法が明確になります。

私のページが別のページに遷移した場合、どうすれば同じ古いロガー ハンドラーを取得して、同じログ ファイルにログを記録し続けることができるでしょうか?

複数のユーザーがアプリを使用している場合、正確にはどのように機能しますか? (私の知識不足をお許しください:-))。

ページ1で初期化されたロガーのハンドラーを別のページで取得する方法に関するサンプルコードがあれば、私の努力を絞り込むのに本当に役立ちます.

前もってありがとう、ラヴィ。

4

1 に答える 1

1

log4javascript はクライアント上で実行されるため、すべてのログは個々のクライアントが使用するブラウザによって生成されます。サイトの「複数のユーザー」とは、次のいずれかを意味します。

  1. 同じブラウザの異なるタブで開いた Web サイトの複数のインスタンス
  2. ブラウザを使用して Web サイトを表示するさまざまなマシン上のさまざまなユーザー

現在、log4javascript には、読んだことがあるかもしれない「アペンダー」の概念があり、次の使用可能なアペンダーがあります

  • AlertAppender
  • AjaxAppender
  • PopUpAppender
  • InPageAppender
  • BrowserConsoleAppender

上記のケース (1) の場合、「同じファイルに」ログを記録できるかどうかはわかりません。これらのアペンダーではファイルにログを記録できないためです。ケース (2) の場合 - ログは異なるクライアントの異なるマシンで生成されるため、同じファイルへのログは無関係です。

あなたの質問に答えるために、PopUpAppender を使用すると、最初のページのウィンドウがポップアップし、次のページはハンドルを気にすることなく同じ PopUpAppender ウィンドウにログを記録し続けると確信しています。BrowserConsoleAppender についても同様です。

サーバーで複数のクライアントによって生成されたログを収集する場合、最善の方法は AjaxAppender を使用することです。この場合、同じクライアント/ユーザーの「同じファイル」または「同じストリーム」(またはその他のもの) にログを追加する方法は、AjaxAppender のサーバー側ハンドラーをどのように実装するかによって異なります。頭に浮かぶアプローチの 1 つは、AjaxAppender の各クライアントが使用する URL にユーザー ID または一意のクライアント識別子を含めることです。これにより、サーバーは、ログの送信元のユーザー/クライアントを認識し、すべてのログを保存するのに役立ちます。サーバー上の 1 か所で。

于 2013-11-29T15:14:22.097 に答える