1

古いアプリケーションをVB6から.Net3.5にアップグレードする一環として、ロギングにアプローチする最善の方法について、オフィスで話し合っています。古いシステムはローカルログファイルを使用していましたが、そのパスはレジストリに含まれていました(デフォルトでは指定しないでください)。現在、私たちのほとんどはWindowsアプリケーションイベントログの使用に傾倒していますが、ある人が質問を投げかけ、私たちを死に至らしめました。

Citrixのように、負荷分散によって1人のユーザーのセッションがさまざまな時点でさまざまなアプリサーバーによって処理される可能性がある環境についてはどうでしょうか。突然、セッションからの情報の断片が複数のサーバーに分散する可能性があります(または、私たちのほとんどはこれまでこれに対処する必要がなかったため、100%確信が持てません)。これにより、サポート担当者は困難になります。サポートコール中に一連のイベントをつなぎ合わせます。一般的なコンセンサスは、MS Enterprise Libraryのログ機能を使用し、インストールごとにログの中央リポジトリを設定する必要があるということのようです。

Enterprise Libraryを使用した集中ログ以外に、アプリサーバーファームを含む複数の環境でのアプリケーションロギングのベストプラクティスまたは賢明なアプローチを誰かが推奨できますか、それともすでに正しい方向に進んでいますか?

乾杯

4

4 に答える 4

2

Citrixファームでは、負荷分散はセッションごとに(ログオン前に)実行されます。個々のセッションをサーバー間で移動することはできません。後者は偶然にもサーバーベースのコンピューティングの「聖杯」です-あなたがそれを理解した場合、Citrixにそれを行う方法を教えてください、彼らは興味を持っています;-)

それはあなたにとってそれをより簡単にするはずです。すべてのWindows環境で、セッションは常に同じ物理マシンまたは仮想マシン上にあります。その情報により、イベントログへのログ記録が再びオプションになりました。

于 2010-11-23T19:56:23.223 に答える
1

通常、私はデスクトップアプリとサービスに組み込みのWindowsログ機能を使用することに専念しています。しかし、これは興味深い問題を引き起こします。

Enterprise Libraryを活用し、ログストレージを一元化することで、より良いサービスが提供されると思います。

于 2010-11-23T17:47:43.090 に答える
1

一元化されたデータベースにログを書き込むカスタムTraceListenerクラスを使用します。

于 2010-11-23T17:49:20.017 に答える
1

イベントログでさえあなたの状況で機能することができます-あなたはただアクティビティIDやセッションIDのようなものを含める必要があります。これにより、アプリケーションログのすべての部分を相互に関連付けることができます。

中央データベースにログを記録すると、すべての要素を1か所にまとめることができます。ただし、アクティビティIDの使用を検討する必要があります。

CorrelationManagerクラスを参照してください。

于 2010-11-23T17:51:31.937 に答える