3

現在、Castle のLogging Facilityと log4net を組み合わせて使用​​しているアプリケーションのログを記録するために、新しい .NET 4.5 EventSourceクラスの使用を開始する最良の方法は何ですか。

当初、Castle の ILogger インターフェイスを拡張して、EventSource が容易にするよりリッチなセマンティック スタイルのログ記録をサポートできるのではないかと考えていました (問題が発生しました)。

セマンティック ログ アプリケーション ブロックは、EventSource を使用する 1 つの実装を提供しますが、もちろん ILogger を使用していません。

4

1 に答える 1

2

SLAB 実装だけでなく、セマンティック ロギング全般に移行する場合は、 Serilogに移行する方が簡単な場合があります。(免責事項 - 私はプロジェクトを開始しましたが、現在は十分に確立されています)。

Serilog は、および友人と同じセマンティック ロギングの概念を実装してEventSourceいますが、Castle から取得した従来の "ILogger" スタイルの API を使用します。

log.Information("The cart contains {CartSize} items", cart.Count);

この例では、パラメーターをメソッドCartSizeに渡す場合と同様に、呼び出された構造化プロパティをイベントに関連付けます。EventSource(従来{0}の数値書式指定子を使用して、名前付きではなく番号付きのプロパティで構造化されたイベントを取得することもできます!)

API には互換性があるため、既存のアプリをあるスタイルILoggerから別のスタイルに移行することは、すべてを に移植するよりも簡単EventSourceです。アプローチにはいくつかの方法がありますが、それがオプションであると判断した場合は、フォローアップの質問に目を光らせます.

于 2014-09-23T05:05:52.437 に答える