3

ASP.Net MVC でのウィンザー城の log4net 機能の統合に問題があります。同じコードの 2 つのプロジェクトがあります (参照と現在のプロジェクトを保持するために書いたサンプル)。サンプル プロジェクトは正常に動作しますが、現在のプロジェクトは動作しません。null 参照例外が発生します。Castle Windsor IOCを統合したasp.net mvc 3アプリケーションがあります。NuGet 経由で必要な dll を追加しました。ここに私のコードの断片があります: ステップ 1: ロガー インストーラー

public void Install(Castle.Windsor.IWindsorContainer container, Castle.MicroKernel.SubSystems.Configuration.IConfigurationStore store)
{            
     container.AddFacility<LoggingFacility>(f => f.UseLog4Net());            
     //container.AddFacility<LoggingFacility>(f => f.LogUsing(LoggerImplementation.Log4net).WithConfig("log4net.config")); 
}

ステップ2:

log4net.config

ステップ3:私のAccountController(LogOn Method)で..

public ILogger Logger { get; set; }
Logger.InfoFormat("User {0} has successfully signed in.", model.UserName);

この 1 週間、私はあらゆることを試し、この Web サイトで 20 ~ 30 の投稿を読みましたが、まだ機能しません。誰かが私に問題が何であるかを教えて、ステップバイステップのチュートリアルを教えてくれたら、とても感謝しています.

何が欠けているのかわかりません。Project->Properties->Application->.Net Framework 4.0 を確認しましたが、まだ動作しません。

注: キャッスル ウィンザーの Web サイトのチュートリアルhttp://docs.castleproject.org/Windsor.Windsor-Tutorial-Part-Five-Adding-logging-support.ashxに従いました。

4

3 に答える 3

0

ILogger を使用するクラスは、ILogger を使用する前にインスタンス化を終了する必要があると思います。

したがって、コンストラクターの呼び出しが完了する前に ILogger を呼び出そうとすると、Windsor が log4net をロードする方法により、ILogger は null になります。

AccountController のコンストラクター内で LogOn() メソッドを呼び出していますか?

于 2012-09-07T18:42:37.020 に答える
0

Castle.Core.Logging.ILoggerlog4netのものは使用しないでください。それが LoggingFacility で動作するものです。

于 2012-07-06T22:00:05.020 に答える