問題タブ [ninject-logging]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
578 参照

c# - ILogger の構成は不要ですか?

私は Ninject のログ拡張機能 (v3.0) を NLog (v2.0) で試しています。私が読んだことから、何も設定する必要はありません。これは自動魔法のようなもので、必要なのはdo は、ILogger必要な場所で依存関係を宣言することです。

nlog.config既に持っていたファイルを保持し、ロガーを作成するすべてのコードを削除し、代わりにILoggerクラスのコンストラクターに入れました。

ActivationExceptionコンポジション ルートで ...Ninject can't resolve が表示されますILogger

私は何が欠けていますか?

私が持っているものは、本質的にこれに要約されます:

これは価値のあるコンソール アプリです...ロギング拡張機能はこのように動作するはずですか?


ドキュメントには次のように記載されています。

タイプインスタンスをリクエストする前に、カーネルが新しい Log4NetModule または NLogModule をロードしていることを確認してください

しかし、私がこれを行うと:

...ReSharper は何が何であるかを知りませんNLogModule

0 投票する
1 に答える
612 参照

c# - リリース ビルドのみで ILoggerFactory.GetCurrentClassLogger が InvalidOperationException で失敗する

先週、私の Windows サービス アプリケーションの運用環境へのデプロイが失敗したため、プロジェクトをローカルでリリース モードで実行しようとしたところInvalidOperationException: Can not determine current class.GetCurrentClassLogger.

私のプロジェクトでは、 NinjectILoggerFactoryを使用して、中間層のすべてのサービスに解決します。次に、サービスはコンストラクターでGetCurrentClassLogger()適切なものを取得するために使用します。ILogger例えば:

Ninject.Extensions.LoggingGetCurrentClassLoggerのatLoggerFactoryBaseの実装を掘り下げると:

例外がスローされている場所を確認できます。

私の最初の本能は、システム、フレームワーク、またはプロジェクトの更新が原因であるかどうかを確認することでしたが、最後に成功した展開以降、意味のあることは何も行われませんでした.

さて...この問題の「面白い」ことはTrace.WriteLine("Test");、コンストラクターに行を追加すると、正常にGetCurrentClassLogger実行されることです。

この問題をコンパイラのコード最適化に関連付けることができました。プロジェクト プロパティの [ビルド] タブで無効にすると、正常に実行されます。

質問StackFrame:の提供を停止する原因は何DeclaringTypeですか?

その間、私はこれを回避策として使用していますが、元の方法を使用することをお勧めします。

どんな助けでも大歓迎です。