2

現在 Autofac を使用しており、AutofacSerilogIntegration を活用して、ILogger がコンクリートに注入されたときにログ コンテキストを自動的に設定しています。統合は、ロガーが挿入されるタイプでロギング コンテキストを設定します。これは Autofac では不当に難しいことではありません。これは、任意の解決に使用できる「準備中」イベントがあるためです...そのため、ILogger の解決を傍受し、その時点で ILogger を強化することができ、Autofac は含まれている型をこのインターセプターから確認できます。コードは次のとおりです: https://github.com/nblumhardt/autofac-serilog-integration/blob/master/src/AutofacSerilogIntegration/ContextualLoggingModule.cs

私は、DryIoc でインターセプトが利用できることを見てきましたが、Autofac アプローチほど単純なものはありません。DryIoc では、インターセプトされるタイプで注入されたコンクリートごとにインターセプターを登録する必要があるようです。 https://bitbucket.org/dadhi/dryioc/wiki/Decorators#markdown-header-decorator-as-interceptor-with-castle-dynamicproxy

DryIoc でこの問題にアプローチするための最善の方法について誰かアドバイスはありますか? これは、比較的一般的でパフォーマンスの高い方法で可能ですか? DryIoc のドキュメントを見た後、注入されるクラスがある種の一般化されたインターセプター (およびグローバルに適用できる) で決定できる場所が表示されないため、これに対する直接的なアプローチはわかりません。 . これは非常に遅いことが知られているため、ロガーからのコールスタックを調べたくありません。

ありがとう

4

1 に答える 1

3

Serilog が log4net と同様にログに記録されたタイプに関する情報を必要とする場合は、例を含むドキュメントを次に示します。

于 2016-05-02T19:44:01.767 に答える