【发布时间】:2012-07-06 12:08:45
【问题描述】:
我在 ASP.Net MVC 中集成温莎城堡 log4net 设施时遇到问题。我有两个具有相同代码的项目(我为保留参考和当前项目而编写的示例)。示例项目工作正常,但我当前的项目不工作我得到一个空引用异常。我有一个集成了城堡温莎 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"));
}
第二步:
log4net.config
第 3 步:在我的 AccountController(登录方法)中..
public ILogger Logger { get; set; }
Logger.InfoFormat("User {0} has successfully signed in.", model.UserName);
在过去的一周里,我尝试了所有方法并阅读了该网站上的 20-30 篇帖子,但我仍然无法正常工作。如果有人能告诉我问题出在哪里,并为我提供分步教程,我将不胜感激。
我不确定我错过了什么。我已经检查了 Project->Properties->Application->.Net Framework 4.0 但仍然无法正常工作。
注意:我按照城堡温莎网站教程http://docs.castleproject.org/Windsor.Windsor-Tutorial-Part-Five-Adding-logging-support.ashx
【问题讨论】:
-
如果您将记录器设为构造函数依赖项(或将其保留为属性依赖项但使其成为必需项?)会发生什么?
-
我遇到了类似的问题。 Castle 的支持似乎非常不可靠。我有一堆使用记录器的类。这些类都是从模板生成的,因此它们使用记录器的方式在所有情况下都是相同的,但是对于某些类它可以工作,而另一些则不能,并且它会随着我的应用程序的运行而变化。真烦人。
标签: asp.net-mvc-3 log4net castle-windsor