2010-11-23 4 views
1

ログに最も近づける方法については、VB6から.Net 3.5への古いアプリケーションのアップグレードの一環として、Officeで議論しています。古いシステムでは、ローカルログファイルが使用されました。ローカルログファイルは、レジストリに格納されていました(既定値は指定しないでください)。私たちの大半はWindowsアプリケーションイベントログの使用に傾いていますが、1人の人が質問をして私たちを死に至らしめました。エンタープライズ環境でのアプリケーションイベント/例外/メッセージのログ

ロードバランシングとは、1つのユーザーのセッションがさまざまな場所で異なるアプリケーションサーバーによって提供される可能性がある環境のことです。私たちは突然、いくつかのサーバーにまたがるセッションからの情報の断片を潜在的に持つ可能性があります(または、私たちの大部分はこれを処理していないので、100%確実ではありません)。サポートコール中に一連のイベントをまとめます。一般的なコンセンサスは、MSエンタープライズライブラリロギング機能を使用し、インストールごとにログの中央リポジトリを設定する必要があるようです。

エンタープライズライブラリを使用した集中ログ以外のアプリケーションサーバーファームを含む複数の環境で、アプリケーションのログ記録にベストプラクティスまたは合理的なアプローチを推奨する人はいますか?

乾杯

+0

すべての回答ありがとう、彼らはすべての良い情報でしたので、私はそれらをすべて投票しました。彼らがCitrixのセッションの処理について安心してくれたので、Helge Kleinの答えを受け入れました。エンタープライズライブラリを使用して集中ログを作成するのはおそらく簡単だと思います。これは実装が簡単なアプローチであり、サポートの容易さという点で最も賢明です。 –

答えて

2

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

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

+0

私は、問題の男がセッションが異なるサーバーに分かれていると言ったときに戸惑うことがありましたが、私はCitrixの経験がないのでどちらの方法でもコメントできませんでした。とにかくエンタープライズライブラリを使用してログを集中管理することで、正しい方向に向かうような気がします。たぶん、ユーザーID /セッションIDに基づいて検索可能なWindowsログからアプリケーション用のものをフィルタリングするシンプルなビューアやマクロを作成する必要があります。 –

1

は、通常、私は、すべてのデスクトップアプリケーションとサービスのための機能をログウィンドウに建てられたの使用についてです。しかしながら、これは興味深い問題を引き起こす。

私は、エンタープライズライブラリを活用し、ログストレージを集中化することでより効果的になると思います。

1

ログを集中データベースに書き込むカスタムTraceListenerクラスを使用します。

+0

これは大好きですが、一般的には商用の衣装のために、私たちはバング・フォー・バック・ソリューションを利用しなければなりません。すでにファイルロギングが行われています。私が好きなのと同じくらい! –

1

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

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

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

関連する問題