46

私は.NETスタックに少し慣れていないので、.NETプラットフォーム用のslf4jに相当するものがあるかどうか疑問に思いました。私にとって、ファサードにログインし、必要に応じてロギングの実装を交換できることは理にかなっています。さらに、slf4jで利用可能なラッパーAPIを使用すると、使用していない単一のロギングフレームワークに対してコーディングされたサードパーティのライブラリを使用する必要が生じたときに、何度も節約できました。

log4net、nLog、Enterprise Libraryなどのロガー間のファサードとして機能するプロジェクトはありますか?それらのライブラリへの呼び出しをショートカットして別のライブラリに転送できるラッパーはありますか?これを自分で行うためにオープンソースプロジェクトを開始する必要がありますか?正しい質問方法がわからないので、この質問は重複していますか?逆に、アスペクト指向プログラミングを使用してこれを行う一般的な方法はありますか?

4

7 に答える 7

20

すみません、私はこれを使用しましたが、Apache のバージョンではないことを忘れていました。これは実際にはオープンソースであり、共通インフラストラクチャーと呼ばれるプロジェクトの一部です。共通ロギングとも呼ばれます。MS Enterprise、log4net などで動作します。それはうまくいきます。

于 2010-04-28T22:30:22.090 に答える
10

Castle Windsor Logging Facilityをご覧ください。

ベースコードはこちら。Log4net アダプターはこちら。NLog アダプタはこちら.

Serilog用のアダプターを追加しました。

アダプターがなければ、ConsoleLogger、DiagnosticsLogger、StreamLogger、および NullLogger がサポートされます。

アダプターを他のロギング フレームワークに書き込むのは非常に簡単です。

于 2010-04-28T22:32:32.087 に答える
9

Simple Logging Facadeを組み込むのは、そのままでThe Object Guy の .Net 用の Logging Frameworkをサポートしているように見えるからです。

于 2010-05-06T21:33:03.793 に答える
5

私は同じ問題を抱えていました。上記の推奨事項を確認した後、 Ninject.Extensions.Loggingを発見しました。

とにかく、ファサードはDIと組み合わせて最も理にかなっているので、これは素晴らしいことです

NLog、NLog2、および log4net のプロキシが付属しています。

NLog と組み合わせて使用​​する方法の良い例を次に示します

この質問はすでに数年前のものであることは理解していますが、他のユーザーの完全性のために、私はまだこの「解決策」を投稿することを選択しました

于 2012-09-27T09:14:59.147 に答える
0

特にライブラリ/ APIの場合、ここにあるすべてのソリューションが不十分であることがわかりました。とは思っていませんでしたが、実際には、ほとんどの問題を処理するオープン ソースの「ロガー」を作成しました。

おそらく、Dapplo.Logを見ることができます。NuGet から取得できます。

アイデアは、ライブラリで Dapplo.Log を使用することです。これを使用するプロジェクトは、(必要に応じて) ログ出力を任意のロガーに送信できます。出力を指示する例は、いくつかの主要なフレームワークの実装を含むテストで見つけることができます

おそらく (まだ) 完璧ではないので、プルリクエストやチケットを歓迎します。

于 2017-04-11T09:02:57.243 に答える