介绍
现在我们已经有了基础的框架了,是时候添加内容了,那么我们首先应该考虑的就是在应用程序中添加日志功能。我们会使用Windsor来配置,在这一部分,你将学习Windsor之外的其他功能。
Logging Facility
在上一部分说过,Windsor有很多自带的可选的功能组件,他们扩展了Windsor的即用性。在这一部分,我们将在程序中添加日志功能。
Logging Facility提供了一些常用的日志框架比如Log4net、Nlog,以及mvc内置的日志框架Trace。Logging Facility将提供一个抽象类,这样当你的程序切换其他日志框架的时候不会很麻烦。更重要的是,Facility根据需要提供Ilogger实例,不需要任何静态依赖。
我们需要添加必须的包,启动Nuget's Package Manager Console并键入:
Install-Package Castle.Windsor-log4net
这将会把依赖想都添加到程序中:
Installer
接下来添加程序集的引用,创建一个Installer来添加日志功能到程序中:
注意API的调用模式,泛型参数指定我们想要添加的类型,然后用lambda表达式制定类型为log4net.
我们没有指定log4net的配置文件,默认的配置是在log4net.Config文件,这是log4net配置的核心文件。我们在程序中添加一个配置文件,包含标准的log4net配置信息:
然后修改Installer类:
What we just did?
你可能会问:这怎么使用?你要做的就是调用Castle.Core.Logging.Ilogger命名空间下的Ilogger接口(常用的做法是使用属性,而不是构造函数)。容器将提供配置并且准备使用Ilogger实例。为了说明我们在AccountController中添加了一个警告日志,当用户登录密码错误时记录日志:
如果log4net的配置是正确的,那么现在登录错误的日志将被记录。