8

Prism /CALWPFアプリケーションにNLogを実装するための最良の方法は何でしょうか。これはアマチュアの質問かもしれません、私はPrismフレームワーク全体に少し慣れていません:)

NLog dllへの参照をインフラストラクチャモジュールに配置し、ラッパーシングルトンクラス(MyLoggerなど)を作成することを考えました。私の考えは、すべてが参照している中央の場所のどこかに1つのロガー実装を参照できるようにすることでした。Prismで私が知っているのはインフラストラクチャモジュールだけです。

明らかな他の方法は、各モジュールにNLogへの参照を追加することですが、それはデカップリングの目的とそのすべてを無効にするだろうと思います。

どんなアイデアも最も役に立ちます

よろしく

4

1 に答える 1

5

Prism の既存のインターフェイスを活用していますが、最初のアイデアに似たものをお勧めします。

NLog で利用できる正確なメソッド シグネチャはわかりませんが、通常は Bootstrapper で定義されているPrism のILoggerFacadeインターフェイスの使用を検討することをお勧めします (設定方法の例については、 StockTraderRIアプリケーションを参照してください)。通常、これはMicrosoft の Composite Logging インターフェイスへのパススルーとして機能しますが、これを使用して独自のロガーにフックできない理由はありません。

このアプローチを検討するいくつかの理由:

  1. Prism フレームワークの既存の ILoggerFacade インターフェイスを使用します。これは、他の開発者が使い慣れているものです。
  2. 後で別のロギング フレームワークに移動することにした場合は、ILoggerFacade 実装の背後にあるオブジェクトを置き換えるだけです。

他のアプローチは、あなたが提案するようにすることです.インフラストラクチャDLLでサービスをNLogに定義するインターフェースを作成し(または既存のNLogインターフェースを公開します)、そのサービスの実装をブートストラッパーに登録します. 次に、依存性注入コンテナーを使用して、モジュール内のロガー サービスへの参照を取得できます。ただし、これは ILoggerFacade インターフェイスが既に提供しているものを実際に再現しているだけであることに注意してください。

于 2011-01-14T21:09:45.950 に答える